菜鸟求救C#调用DLL 回调函数不执行
回调函数原型
typedef void (WINAPI *HHCALLBACK)(int CmdType, ERRTYPE errType, int nDevId,int nChannelID, void *pContext);
ERRTYPE 是个枚举类型
要调用的dll中的函数
HHAPI_DLL int __stdcall Initialize( char* pConfigFileName, HHCALLBACK pCallback );
我声明的委托
public delegate void HHCALLBACK(int CmdType, ERRTYPE errType, intnDevId, int nChannelID, IntPtr pContext);
DLl的引用
[DllImport("HHSDK.dll", CharSet = CharSet.Ansi, SetLastError = true)]
public static extern int HHInitialize(StringBuilder pConfigFileName, JSCALLBACK pCallback);
回调函数体
public static void call(int CmdType, ERRTYPE errType, int nDevId, int nChannelID, IntPtr pContext)
{
。。。。。。。。。。。
}
问题:::
在程序中执行 这个HHInitialize有返回值1
可是这个回调函数无法执行。
请问是什么原因。小弟感激涕零。。。。。。。。。救命啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
------最佳解决方案--------------------明天再来看 有没解答
------其他解决方案--------------------哎 CSDN 的人了?
------其他解决方案--------------------该回复于2011-09-17 02:35:11被版主删除
------其他解决方案--------------------这样调用不成功,80%是那个回调函数的问题,翻翻关于API标准,应该会找到答案
------其他解决方案--------------------我就说说我的经验,我出现的不回调都是dll引用那块的回调函数多了ref或者少了ref的修饰,你看看你的sdk说明文档是不是也有这错误
------其他解决方案--------------------HHCALLBACK callback=new HHCALLBACK(call);
HHInitialize("pConfigFileName", callback);