首页 新闻 会员 周边 捐助

[CLR]C#调用C++函数,并传递函数指针参数

0
悬赏园豆:80 [待解决问题]

c++代码:
//定义回调函数
typedef void(pConnEventCallback)(const char pKhh, const char* pConnKey, int nEvent, void* pData);
//被调用函数,在ITPAPI类中声明实现
void ITPTradeAdpater::ITPAPI::ITPAPI_SetConnEventCallback(pConnEventCallback func)
{
MARITPDK_SetConnEventCallback(func);
}

C#代码
unsafe public delegate void conev(char* pKhh, char* pConnKey, int nEvent, void* pData);
unsafe static void Main(string[] args)
{
ITPTradeAdpater.ITPAPI tPAPI = new ITPTradeAdpater.ITPAPI();
tPAPI.ITPAPI_SetConnEventCallback(&ConnEvent2);//此处报错,不知道该怎么写
}
public unsafe static void ConnEvent2(char* pKhh, char* pConnKey, int nEvent, void* pData) {
Console.WriteLine("nEvent:{0}",nEvent);
}

C#调用ITPAPI_SetConnEventCallback 并传递函数指针参数,然后c++回调ConnEvent2;问题是怎么把ConnEvent2当做函数指针传递给ITPAPI_SetConnEventCallback ?
目前C#调用ITPAPI_SetConnEventCallback函数 需要传递一个函数指针,不知道C#该怎么声明函数指针并传递调用。
这个功能是c++回调C#, 用来做通知。没搞过CLR,请各位指教!

zeran的主页 zeran | 初学一级 | 园豆:122
提问于:2022-06-20 11:26
< >
分享
所有回答(1)
0

GCHandle.Alloc
GCHandle.ToIntPtr

可以google起来了.

czd890 | 园豆:14488 (专家六级) | 2022-06-20 14:28

搜索了一下,没搞懂该怎么写,希望给指点一下,感谢

支持(0) 反对(0) zeran | 园豆:122 (初学一级) | 2022-06-20 14:39
支持(0) 反对(0) czd890 | 园豆:14488 (专家六级) | 2022-06-20 14:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册