求教C#调用C++DLL没有加extern "C"修饰的函数解决办法

 我来答
zjfaok
推荐于2016-03-23 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1615万
展开全部
C++导出函数不加 extern "C" 就是在作死

非要应对这种情况的话:先搞清楚是用哪个编译器编译的;再找这个编译器的 name mangling 是什么规则(运气好的话可以找到专门进行 name mangling 的程序);然后根据 name mangling 规则以及这个函数的声明、作用域、其他各种信息,模拟进行一遍 name mangling (可以用之前找到的程序,如果没有这种程序的话就只能手动了); name mangling 的结果就是这个函数的真名

当然另一种方式是直接用工具看这个DLL提供了那些函数,然后从乱码一般的函数名中猜测哪个是你想要用到的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式