在项目中使用C#代码调用C++ DLL时。常常会出现这个问题:在开发者自己的电脑上运行没有问题,但是部署到客户电脑上时会出现下面问题:
Unhandled Exception:System.DllNotFoundException: Unable to load DLL"**":找不到指定的模块。
出现这个问题的原因:一般是该客户电脑上缺少该DLL的依赖项。一般来说比较常见的缺少项是msvcr1200.dll msvcp1200.dll。具体缺少什么,需要使用Dependency Walker查看。Dependency Walker。
特别要注意的是64位和32位的问题。64位dll缺少的msvcr1200.dll应该从C:\Windows\System32找到,拷贝到dll目录下。32位dll缺少的msvcr1200.dll要从C:\Windows\SysWOW64拷贝。