博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 调用C++接口
阅读量:6824 次
发布时间:2019-06-26

本文共 792 字,大约阅读时间需要 2 分钟。

1 System.DllNotFoundException”类型的未经处理的异常在 test.exe 中发生 其他信息: 无法加载 DLL“DLL/AR_ALGORITHM.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

该问题的原因是程序无法找到AR_ALGORITHM.dll,通常程序在bin目录下,system32目录下,和程序运行所处的当前目录查找

2“System.EntryPointNotFoundException”类型的未经处理的异常在 test.exe 中发生 

其他信息: 无法在 DLL“../../../DLL/AR_ALGORITHM.dll”中找到名为“WGStoGCJ”的入口点。

在C++的函数声明中指定了WINAPI,而在C#重新定义相应的调用却指定了Cdecl,实际上应该指定Winapi,或者简单的方式是什么也不用指定

[DllImport("../../../DLL/AR_ALGORITHM.dll", EntryPoint = "WGStoGCJ", CallingConvention = CallingConvention.Cdecl)]

简单正确

[DllImport("../../../DLL/AR_ALGORITHM.dll")]

那从应用上考虑,注明WINAPI和不注明WINAPI的函数在使用用上有什么差别或注意的地方?

那就是系统和不是系统函数的区别

从应用上讲,区别不是很大,只要使用的声明是正确的。

例如你写了一个库函数用的是WINAPI声明的,而别人调用的时候用的声明也要是WINAPI才行,否则运行期会出错

     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1955507,如需转载请自行联系原作者
你可能感兴趣的文章
关于ubuntu配置静态IP 无法正常上网的解决方案
查看>>
ubuntu14.04安装vmware workstation
查看>>
ArcGIS API for Silverlight部署本地地图服务
查看>>
小知识点
查看>>
python mongodb MapReduce
查看>>
int 操作
查看>>
(转)Android生命周期
查看>>
python-数据类型
查看>>
Google MapReduce/GFS/BigTable三大技术的论文中译版
查看>>
Linux atop监控工具部署
查看>>
struts2请求过程源码分析
查看>>
效率比较--集合
查看>>
jmeter IF控制器学习--使用实例
查看>>
memory prefix retro,re out 2
查看>>
WebDriver API 实例详解(四)
查看>>
dom01
查看>>
Android实例-如何使用系统剪切板(XE8+小米2)
查看>>
BAT-显示桌面图标
查看>>
PDO vs. MySQLi 选择哪一个?(PDO vs. MySQLi: Which Should You Use?)-转载
查看>>
信息安全系统设计基础第七周总结
查看>>