初学C++/CLI,写了一个Delphi 调用.Net代码的接口,在开发环境用得好好的,但到了生产环境就报错,如图 1。
图1
开发环境是Win7,在VS2013用C++/CLI写的;生产环境是WinXP,已打了SP3。
网上查了下,这个DLL文件属于VC的一个DLL。但我已经在生产环境安装过Visual C++ Redistributable Packages for Visual Studio 2013和.NetFramework 4.0了,应该不存在缺失才对。于是我在生产环境搜了搜C:\Windows\system32\,发现果然没有msvcr120d.dll这个文件,只好从开发环境复制了一份,如图 2。
图 2
再跑一遍程序,再次报错,如图 3。
图3
看提示好像要重装Visual C++ Redistributable Packages for Visual Studio 2013,于是卸了又装一遍,依然无果。
然后看到stackoverflow的高人说把解决方案配置改成Release就行了,如图 4。试了一下,搞定!
图 4
原来VC2013在Debug配置下编译的东西需要msvcr120d.dll来运行,Release配置下编译的东西需要msvcr120.dll来运行(也就是Redistributable Packages安装中带的)。看来以后要多多注意。