项目需要,在winform程序中使用C#调用C++的动态库,在本机编译后通过测试,但是拷贝到其它电脑运行出错。
有一定几率出现错误报告(具体原因还没有调试),报告异常代码为0xE0434352,System.DllNotFoundException
根据提示找了运行库,从VS安装卸载程序中也找了依赖库,全部复制后还是报一样的错
无奈开始百度谷歌之旅...
根据异常代码0xE0434352,在网上查到的东西没有一个是有用的,那个恨啊~~~
于是改变搜索关键字“C#调用C++ System.DllNotFoundException”,完全无视了异常代码,结果终于查到了想要的东西,测试了一种可用的方法
在C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。
这个是debug版本的,其他release版、MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!
吐槽一下,网上虽然高人无数,但懒人也不少,懒人喜欢直接复制别人的东西然后跟提问着说:这样就可以解决问题!斗胆问一句:您测试过吗?如果没有,那么麻烦您确定一下该方法能够解决提问者的问题再作回答,请对自己负责也对提问者负责。
有时候碰到问题了网上搜不到想要的资料也不要放弃,不要说你的问题是独一无二的,不妨换个关键字搜搜,百度不行问谷歌,谷歌不行还有个雅虎,说不定会有意外惊喜。