C#调用C++接口-创新互联
1 System.DllNotFoundException”类型的未经处理的异常在 test.exe 中发生 其他信息: 无法加载 DLL“DLL/AR_ALGORITHM.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
创新互联是工信部颁发资质IDC服务器商,为用户提供优质的南充服务器托管服务该问题的原因是程序无法找到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才行,否则运行期会出错
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:C#调用C++接口-创新互联
分享链接:http://scyanting.com/article/dpepsh.html