Hellsgore schrieb:
Servus,
du kannst leider nicht auf eine in 32 Bit (x86) kompilierte Native DLL mit einer in 64 Bit (x64) kompilierten Applikation zugreifen. Das geht in die Hose. Du hast jetzt die Möglichkeiten, deine Applikation mit x86 zu kompilieren oder deine DLL in (x64).
Mache ich doch. Jeweils stammen die Zielarchitekturen überein (x86/x64).
C.
ich123123123 schrieb:
nein... icq muss auch empfangen.... das war meine frage^^
Um zum epfangen brauchst Du eine Verbindung. Und die baut der Client auf.
Sobald die Verbindung steht, kann gesendet UND emfpangen werden.
Ev. das ein Buch für dich:
Computernetzwerke | ISBN: 9783827370112
knivil schrieb:
Ist eine Gabel vor Fehlbenutzung abgesichert. Nein, man sagt einfach, dass man damit keine Augen ausstechen soll. Wenn ich mir die Vorschlaege so durchlese ist ein Kommentar oder Dokumentation die beste Wahl.
Unter C oder C++ würde ich dir wahrscheinlich zustimmen, aber bei C# ist die Philosophie eher anders. Ich habe noch keine Bibliothek gefunden, welche einen undefinierten Zustand hatte. Wenn es denn einen gab, dann wurde beim Aufruf einer Funktion eine weitere Exception geworfen, dass das Objekt eben in einem undefiniertem Zustand ist.
hustbaer schrieb:
In dem Fall zahlt es sich nicht aus, also dafür z.B. extra irgend welchen C++/CLI Code zu schreiben macht IMO wenig Sinn.
Ich verwende allerdings bereits C++/CLI
hustbaer schrieb:
Dürfen denn anderen Threads auf "B" zugreifen während gerade Step 3/4/5 ausgeführt wird? Wenn ja könnte es tricky werden.
Ja können sie. Allerdings war ich mir nicht mehr so klar, wie genau der Zugriff erfolgt, da der Teil der Bibliothek nicht von mir stammt. Habe das nun nochmals nachgeprüft und wie es aussieht, haben sie grundsätzlich getrennte Instanzen. Es gibt zwar eine Überschneidung, welche aber durch einen Fehler nicht betroffen und somit weiterhin in einem gültigen Zustand wäre.
Ein weiteres Problem ist, dass auch in einem Thread verschiedene Instanzen von B zusammenhängen können. Diese bilden grundsätzlich eine Art von Baum. Und ich habe Zugriff von den Kindknoten zum Wurzelknoten, wodurch ich das Flag in den Wurzelknoten packen kann. Und ich habe herausgefunden, dass ich dadurch gleich noch eine weitere Sicherheitsfunktion einbauen kann, damit man nicht zum falschen Zeitpunkt auf ein B zugreift.
Also schlussendlich scheint es, als wären alle Probleme gelöst. Vielen Dank für die Diskussion.
Grüssli
Ja, es wird ja keine Kopie des Objektes angelegt, aber es wird eine neue Referenz auf das Objekt angelegt. Über diese Referenz kann ich dann natürlich das Objekt auch editieren.
Ist wie gesagt, das gleiche wie wenn ich in C++ eine Methode mit einem Pointer aufrufe (was auch oft fälschlicherweise als Call By Reference bezeichnet wird). Man kann auf das Objekt über den Pointer zugreifen und verändern. Wenn ich allerdings den Pointer als Rückgabewert verwenden will (d.h. ändern, z.B. weil ich mehrere Rückgabewerte brauche), muss eine Referenz auf einen Pointer übergeben werden.
In C# passiert hinter den Kulissen genau das gleiche (bei Klassen, bei Structs wird ohne das "ref"-Keyword tatsächlich eine Kopie übergeben).
Ich habe das Beispiel von dieser Seite exakt so verwendet:
string GetADUserGroups(string userName) {
DirectorySearcher search = new DirectorySearcher();
search.Filter = String.Format("(cn={0})", userName);
search.PropertiesToLoad.Add("memberOf");
StringBuilder groupsList = new StringBuilder();
SearchResult result = search.FindOne();
if (result != null)
{
int groupCount = result.Properties["memberOf"].Count;
for(int counter = 0; counter < groupCount; counter++)
{
groupsList.Append((string)result.Properties["memberOf"][counter]);
groupsList.Append("|");
}
}
groupsList.Length -= 1; //remove the last '|' symbol
return groupsList.ToString();
}
Abgesehen von dem kleinen Fehler, dass hier immer "groupsList.Length -= 1" gemacht wird und es daher ggf. eine Exception gibt, schien der Code für mich in Ordnung zu sein.
Das Problem ist, dass ich jedoch für ein Konto, was definitiv mehreren Domänen-Gruppen zugeordnet ist, immer als einziges Ergebnis
CN=Domänen-Benutzer,CN=Users,DC=mydomain
Was mache ich noch falsch?
David W schrieb:
Dein EnumHelper brauchst du auf jeden fall nicht, Enum.GetNames macht das bereits
Bei mir (SL 4.0) hat die Enum Klasse nur eine Methode "GetName", aber nicht "GetNames"
für mich hat es sich so gelesen, dass das Problem dort darin bestand, dass es auf einem anderem Betriebssystem nicht funktioniert hat.
Mein Problem besteht aber darin, dass es das Event nicht erkennt, weil das alte Programm in Multibytecode geschrieben ist und das neue Programm in Unicode. Weswegen das neue Programm den Namen des Events nicht erkennt, weil es die Strings nicht vergleichen kann. (Was sich in den letzten Stunden durch ständiges testen rauskristalisiert hat und ich im Ausgangsthread auch schon vermutet habe)
Wir sind jetzt dabei das alte Programm so umzustricken, dass der Name des Events ebenfalls in Unicode ist. Dann wird es erkannt. Was aber auch problematisch ist, da es von meinem neuen Programm eine alte Version gibt, die auf das Event in Multibyte reagiert. Deswegen suche ich noch nach einer Lösung, mein Programm so abzuändern, dass ich auf das Event in Multibytecode reagieren kann. Bisher habe ich dazu noch nichts gefunden. Vielleicht weil ich die Suche auch falsch angegangen bin. Ich weiß es nicht.
über x:Name einen Namen zuweisen:
<ModelUIElement3D x:Name="cube1" MouseDown="UIElement3D_MouseDown">
Dann im c#-Teil drauf zugreifen...
object ui3 = Viewport3D1.FindName("cube1") as object;
Gruß
Darlo
Jo, das kannst du auch verwenden. Beachte aber, dass du die 2.0er Assembly wirklich sehr gut durchtestest, da sie dann auf einer CLR läuft, für die sie nie entwickelt wurde, obwohl MS einen guten Job in Bezug auf Rückwärtskompatibilität macht.
Außerdem bedingt dieses Attribut auch ein verstecktes out-of-process, aber es dürfte immer noch besser sein als COM out-of-process
Ach ja: Das hier passiert bei dem Attribut.
shaun1981 schrieb:
Ja ... das mag sein. Wie ist das mit der Einarbeitung dort ? Würde ich mit anfänglichen Kenntnissen über Proggn dort schnell Ergebnisse erzielen ?
Ist unterschiedlich. Gewisse kommen leicht hinein, andere haben eher Mühe. Ich persönlich habe grosse Mühe mit WPF, womöglich auch weil ich mich an "normale" GUI Frameworks gewöhnt bin. WPF macht da einfach ziemlich etwas anderes.
Allerdings braucht es schon einiges an Wissen für WPF. Es ist wohl schon ratsam, sich dazu ein Buch zu kaufen und sich etwas Zeit zu nehmen. Die Einarbeitung kann also unter Umständen einfach sein, braucht aber auch seine Zeit.
Wenn man sich allerdings überlegt, was es alles benötigt, um solche graphischen Dinge mit WinForms zu bewerkstelligen, relativiert sich wohl diese investierte Zeit. WinForms ist dazu einfach völlig ungeeignet
Grüssli
BLABLABLABa schrieb:
O.o schrieb:
Entweder du trägst die IPs in die Firewall ein und blockst sie dadurch oder du nimmst erst einmal jede Verbindung an, schaust nach ob die IP zugelassen ist und schließt die Verbindung ggf. gleich wieder.
Ach so
Wären beide Methoden gleichzeitig sicherer ?
Gruss BlaBlaBlub
Nein. Wozu soll das gut sein beides zu haben? Ein Mechanismus, eine Fehlerquelle, zwei Mechanismen, zwei Fehlerquellen.
schon gut. Hat sich erledigt.
So funktioniert das:
Bitmap myBitmap = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(myBitmap, new Rectangle(0, 0, this.Width, this.Height));
myBitmap.Save("C:\\test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);