Problem bei Aufruf einer nativen DLL

25/01/2010 - 11:42 von Daniel Weinand | Report spam
Ich muss aus einer Anwendung eine native DLL aufrufen. Die native
Funktion erwartet in C einen Pointer auf ein struct. Ich habe jetzt
das struct bzw. die Klasse nach C# übersetzt, aber leider bekomme ich
immer einen Fehlercoe der DLL zurück der mit mitteilt dass der
übergebene Parameter wohl nicht valide ist.

Hier mal die C Seite:
http://pastie.org/private/b8fkityoxadjygqriizuw

Die C# Seite:
http://pastie.org/private/qyk0ctpgr5ck8kggzhdyq

Wenn ich das recht verstanden habe sollte ja der Marshaller eine
Klasse dann auch als Referenz (Pointer) übergeben. Der Versuch das
Ganze als struct mit dem out bzw. ref Parameter zu übergeben bringt
mir den gleichen Fehler. Irgendetwas ist dann wohl an dem struct nicht
so wie die DLL es erwartet. Ich vermute mal es liegt wohl an den
"gemarshallten" Feldern. Finde nur gerade das Problem nicht.

Gruss

Daniel
 

Lesen sie die antworten

#1 Thomas Scheidegger
25/01/2010 - 12:31 | Warnen spam
Hallo Daniel

übergebene Parameter wohl nicht valide ist.
..vermute mal es liegt wohl an den gemarshallten" Feldern.



in C++ ist 'long' oft (je nach Compiler usw) auch 32-Bit,
in C# ist 'long' immer fix 64-Bit.



Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen