C#动态调用C++DLL中的函数

DLL中导出的函数

cpp 复制代码
typedef void (*HQ_MSG_CALLBACK)(void *h, int nMsg, int nMsgType, int nReqNo, const char *szData, int nSize);
void SetMsgFunc(void *h, HQ_MSG_CALLBACK pmsgCallBack);

C#动态调用上述函数

csharp 复制代码
public delegate void CALLBACK(IntPtr h, int nMsg, int nMsgType, int nReqNo, IntPtr data, int nSize);
[DllImport(DllPath, CallingConvention = CallingConvention.Cdecl)]
private static extern void SetMsgFunc(CALLBACK pmsgCallBack);


public static void HQCallBack(IntPtr h, int nMsg, int nMsgType, int nReqNo, IntPtr data, int nSize)
{}
HQ_MSG_CALLBACK callBackFunc = new HQ_MSG_CALLBACK(HQCallBack);
SetMsgFunc(callBackFunc);//也可直接传HQCallBack函数名

其中函数指针由委托delegate替代,使用时可以传委托对象,也可以直接传函数名;指针由IntPtr替代

相关推荐
电商api接口开发12 分钟前
ASP.NET MVC 入门指南四
c#·asp.net·mvc
纪元A梦14 分钟前
华为OD机试真题——阿里巴巴找黄金宝箱Ⅰ(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
java·c语言·javascript·c++·python·华为od·go
Ethon_王15 分钟前
走进Qt--QWidget基类详解
c++·qt
CHQIUU30 分钟前
跨语言哈希一致性:C# 与 Java 的 MD5 之战?
java·c#·哈希算法
愚润求学32 分钟前
【专题四】前缀和(3)
开发语言·c++·笔记·leetcode·刷题·c++11
hu_yuchen43 分钟前
C++:智能指针
开发语言·c++
永进,1 小时前
C++中的智能指针
开发语言·c++
技术拾荒者2 小时前
c#加密证件号的中间部分,改为*号
c#
杨筱毅2 小时前
【优秀三方库研读】【性能优化点滴】odygrd/quill 解决伪共享
c++·性能优化·三方库研读
weixin_423995002 小时前
unity 读取csv
unity·c#