ich eine C++ DLL, die eine exportierte Funktion mit der folgenden Signatur ....NET und C++ Interoperabilität
__declspec(dllexport) __stdcall
void Paint(LPDISPATCH& disp, VARIANT& x, VARIANT& y, VARIANT& z);
Ich möchte die diese exportierte Funktion von C# .NET nennen. Für diese heißt gebrauchte die following prototype ...
[DllImport("xyz.dll",
CallingConvention = CallingConvention.StdCall)
public static extern void Paint(
[MarshalAs(UnmanagedType.IDispatch), In, Out] ref object which,
[MarshalAs(UnmanagedType.I4), In, Out] ref object x,
[MarshalAs(UnmanagedType.I4), In, Out] ref object y,
[MarshalAs(UnmanagedType.I4), In, Out] ref object x);
Wann i tried zu invoke die call, ihn heißt throwing ein exception saying dass Attempted zu read/write memory Which heißt invalid.
Bitte beraten Sie mich dabei, wie Sie diese C++ API von .NET aufrufen/aufrufen.
Vielen Dank, Sundareswaran Senthilvel
Ein Teil des Problems kann darin liegen, wie Sie die Methode aufrufen, können Sie Code anzeigen, der versucht, die Methode von .Net aufzurufen. – morechilli