DllImport für bestimmten Parameter

29/08/2007 - 10:08 von Christoph | Report spam
Tagchen,

wie müssen die DllImport-Parameter in c# für die Methode haben, die
folgende C++ Syntax besitzt?

MethodeName( char *data);
bzw.
MethodenName(void *data);


Was ich habe:
[DllImport("DLLNAME.dll", ExactSpelling = true, CharSet CharSet.Auto, SetLastError = true)]
private static extern unsafe bool MethodenName( <HIERUM GEHT
ES MIR> );


Gibt vielleicht eine Seite, die soetwas thematisiert?

Vielen Dank schoneinmal im Voraus

MfG
Christoph
 

Lesen sie die antworten

#1 Thomas Scheidegger [MVP]
29/08/2007 - 10:27 | Warnen spam
Hallo Christoph

wie müssen die DllImport-Parameter in c# für die Methode haben
MethodeName( char *data);
MethodenName(void *data);



dies sind irgendwelche Pointer auf zu ungenau spezifizierte Daten,
man muss daher die C++-Seite/Source kennen oder mind. Doku/Aufruf-Bsp.

Man könnte _spekulieren_:
MethodeName( char *data) als String-Parameter, wird ganz simpel zu C#
MethodeName( string data )

MethodeName( void *data) entspricht ebenso willkuerlich C#
MethodeName( IntPtr data )

Ohne mehr Infos kann man keine exakte DllImport bauen, 100% Crash Risiko.


Gibt vielleicht eine Seite, die soetwas thematisiert?



MSDN wie
http://msdn2.microsoft.com/en-us/library/aa288468(VS.71).aspx

http://msdn2.microsoft.com/en-us/library/zah6xy75(VS.80).aspx

usw, natuerlich sind hervorragende C++ und Win32 Kenntniss vorausgesetzt und einiges an Erfahrung.



kaum, denn C++: 'char' entspràche eigentlich immer CharSet.Ansi
(Auto wird Unicode unter NT+)


unsafe



meist kommt man in C#-PInvoke ohne Pointer aus, dann ist 'unsafe' fehl am Platz.




Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/

Ähnliche fragen