Hi Liste, hab mal wieder ein kleines Problemchen und hoffe auf Eure Hilfe: Hintergrund: Es werden Methoden einer externen .dll (C++) aufgerufen welcher ein Pointer auf eine Struktur übergeben wird. Die DLL soll die Struktur mit Daten füllen und diese Daten werden dann in der App (windows form) dargestellt. Ich habe die Struktur aus c++ übernommen und in eine c# struct umgewandelt:
[StructLayout(LayoutKind.Explicit)] unsafe public struct TSDKStationInformation { [FieldOffset(0)]public System.UInt32 size; [...] [FieldOffset(32)] public System.Char * Description; [...] } Eine Variable von Typ der Struktur ist als Klassenmember deklariert. Mein externer Funktionsimport sieht so aus: [DllImport("blah")] private unsafe static extern int GetStation(System.Int16 ListMode, System.Int32 StationID, TSDKStationInformation * StationInformation); Der Aufruf im Code so [...] fixed(TSDKStationInformation * pStationInformation = &StationInformation) { GetStation(0, 1, pStationInformation); tbxMessage.Text += "\r\ntest: " + test + " x:" + StationInformation.Coordinate.x + " y:" + StationInformation.Coordinate.y; } Ist das mit dem fixed richtig? Ich habs schon mit out versucht, aber das hat nicht geklappt. Das Problem scheint zu sein dass er zwar den Pointer auf die Struktur richtig übergibt, das Füllen in der DLL auch soweit funzt (laut debugger in VC++ 6) aber ich am Ende des Aufrufs in meiner .NET Variable nicht drin stehen habe. Was ist zu beachten bei der Übergabe von Pointern auf Strukturen wenn ich zwischen .NET und "unsafe" Code hin und her springe. Hab zwar schon alles veruscht (zumidnest alles was ich weiss) finde aber den Fehler nicht :-(( Danke für Eure Hilfe Tobias :-) _______________________________________________ Framework.net Mailingliste, Postings senden an: [EMAIL PROTECTED] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/framework.net