小弟有一DLL是用VC写的
原型如下:HRESULT __cdecl SetCallBack(
HANDLE hHandle,
void *pFunction,
void *pFirstParameter,
WORD wID,
WORD wStream
)下面是我在C#中定义的该DLL函数,不知道对不对[DllImport("MYDLL.dll", EntryPoint="SetCallBack")]
public static extern int SetCallBack(IntPtr hHandle, void * pFunction, void * pFirstParameter, short sID, short sStream);编译是通过了,但是不知道如何定义回调函数和调用这个API
其中第二和第三个参数需要到一个回调函数和该回调函数所在的类的指针
那么在C#中如何我应该如何定义这个回调函数呢?
然后参数该怎么写?
我是今天才接触C#的,因为要赶工程,请大家帮帮忙哦,谢谢了
原型如下:HRESULT __cdecl SetCallBack(
HANDLE hHandle,
void *pFunction,
void *pFirstParameter,
WORD wID,
WORD wStream
)下面是我在C#中定义的该DLL函数,不知道对不对[DllImport("MYDLL.dll", EntryPoint="SetCallBack")]
public static extern int SetCallBack(IntPtr hHandle, void * pFunction, void * pFirstParameter, short sID, short sStream);编译是通过了,但是不知道如何定义回调函数和调用这个API
其中第二和第三个参数需要到一个回调函数和该回调函数所在的类的指针
那么在C#中如何我应该如何定义这个回调函数呢?
然后参数该怎么写?
我是今天才接触C#的,因为要赶工程,请大家帮帮忙哦,谢谢了
CResult *pResult;
int CHvResult::OnBigImageProxy(void *pFirstParameter);
对于void * pFunction 和 void * pFirstParameter
在C++中是取回调函数的地址作为pFunction参数
然后取该回调函数所在的类对象的地址作为pFirstParameter参数
因此C++中的参数类型都是void *
由于刚接触C#,所以不知道如何将C#中的函数地址作为参数传进去