1
下面是一個在C的PInvoke塊++,我試圖將轉換爲C#:的PInvoke使用指針 - C++到C#
typedef PVOID JHANDLE ;
typedef UINT32 JRET ;
#define JEXPORT __declspec(dllimport) JRET
JEXPORT
JInitialize (
OUT JHANDLE* ppHandle,
IN PVOID context,
IN UINT32 flags
) ;
我嘗試了以下調用,但它扔了PInvokeStackImbalance例外說,簽名不匹配:
[DllImport("jhi.dll")]
public static extern UInt32 JHI_Initialize(out IntPtr ppHandle, IntPtr context, UInt32 flags);
很明顯,指針的指針處理方式不同,但我不完全確定它是如何轉換的。
謝謝,我總是忘記CallingConvention – Daniel
我知道這是古老的,OP的問題並不真的符合我的要求,但是這個答案在幾個小時的pInvoke地獄後才救了我。你得到一票。 – Zippit