读书人

初学者C#调用DLL 回调函数不执行

发布时间: 2012-12-16 12:02:32 作者: rapoo

菜鸟求救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);

读书人网 >.NET

热点推荐