私はこの関数を持つdelphidllを持っています:
function writeRate(data: variant):Double ; stdcall;
このメソッドを使用して、c#から関数を呼び出しました。
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate double WriteRate(object data);
protected void UpdateRateChannel(string myData)
{
IntPtr pDll = NativeMethods.LoadLibrary("mydll.dll");
IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "writeRate");
WriteRate writeRate = (WriteRate)Marshal.GetDelegateForFunctionPointer(pAddressOfFunctionToCall, typeof(WriteRate ));
double response = writeRate(myData);
bool result = NativeMethods.FreeLibrary(pDll);
}
しかし、私はこの例外を受け取ります:
PInvokeStackImbalance was detected
dllを呼び出すにはどうすればよいですか?問題はバリアント型にあると思いました。ありがとう!