2016-05-08 6 views
3

mit bekam ich pInvokeStackImbalance MDA aus irgendeinem Grund unklarStackImbalance MDA Ausnahme stdcall Aufruf Umwandlung auf beiden Seiten

nativem Code:

extern "C" __declspec(dllexport) __declspec(noinline) void __stdcall 
Ex(__int64 mask, unsigned long *index) 
{ 
    *index = mask; 
} 

Managed:

[DllImport("Libr.dll", CallingConvention = CallingConvention.StdCall)] 
public static extern int Ex(long mask, out uint index); 

...

 uint val; 
     long mask = 12; 
     NativeWrapper.Ex(mask, out val); // pInvokeStackImbalance MDA here 

So, wie Sie CallingConvention StdCall verwenden sehen .. Was ist der Grund für diese Warnung hier?

Antwort

3

Der Rückgabewert der nativen Funktion ist void, aber Ihr C# -Code gibt int zurück.

Verwandte Themen