Ниже приведен блок 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);
Очевидно, что указатель указателя обрабатывается по-разному, но я не совсем уверен, как он переводится.