我在C ++中有一个类型CK_NOTIFY,定义如下:
typedef uint ( * CK_NOTIFY)(
uint hSession,
uint event,
void* pApplication
);
我需要在C#中重新定义这种类型,因为我需要将它用作pinvoke函数的参数。 究竟是什么?结构?还是函数指针?
答案 0 :(得分:2)
这将是delegate
。你的“C类型”描述了一个函数。
该函数返回uint
并获得2 uints
和void*
。
所以你的代表看起来像:
Func<uint, uint, object, uint>
您希望如何处理void*
取决于您......
答案 1 :(得分:1)
如果您需要interop(即将其传递给非托管DLL),您需要这样的委托声明:
public delegate uint CK_NOTIFY(uint hSession, uint @event, System.IntPtr pApplication);