您的位置:首页 > 编程语言 > C语言/C++

c#调用c++的回调函数

2015-09-11 17:20 357 查看
c++提供回调函数的接口,给c#调用

c++:

声明:

typedef void(*SelfDetectCb)(int result);// 设备名称,状态(1成功,0失败)

extern "C" BGISEQEXPORT BOOL WINAPI Seq_AutoSelfDetect(SelfDetectCb callback);

实现:

extern "C" BGISEQEXPORT BOOL WINAPI Seq_AutoSelfDetect(SelfDetectCb callback)

{

callback(0);

return TRUE;

}

c#:

声明:

public delegate void SelfDetectCb(int result);

[DllImport("BGISequence.dll", EntryPoint = "Seq_AutoSelfDetect", CharSet = CharSet.Unicode)]

public static extern bool Seq_AutoSelfDetect(SelfDetectCb callback);

调用:

IBGISequence.SelfDetectCb callback = new IBGISequence.SelfDetectCb(CallbackFunc);

IBGISequence.Seq_AutoSelfDetect(callback);

public static void CallbackFunc(int result)

{

// 处理

}

备注:这里的回调函数为public static类型,但若回调函数中需要处理非静态成员,就得声明为private类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: