用vs2012写了个小程序,但是在别人的电脑上运行,显示需要MSVCR100D.dll

如题,请教各位大神,这种情况是什么原因,是我用vs2012写的任何程序在别人电脑上跑
都会需要这个,还是我的程序里用了这个dll文件里的某个函数之类的?
请问有什么解决办法吗。。。除了让对方安装这个dll文件
谢谢~

MSVCR100D.dll是msvcr100.dll的调试版本(Debug Version)。

用于发布的程序不能使用调试版本的dll。

如何发布程序,微软有详细文档。

制作安装文件

参照此文档完成后程序即可在没有vc库的电脑上运行。

缺少vs的运行库。因为你的电脑安装了vs2012,自然是不缺少这个库了。但别人的电脑里很可能没有,所以还需要再从网上下载一个vs运行库安装到目标电脑上。随便百度一下就有很多地方能下载到。希望能帮到你。

在网上搜索了一下静态编译的帖子,再通过自己实践总结如下。
vs2010 Release模式动态编译 win32控制台程序。编译好的程序在其他电脑上运行,报缺少"msvcr100.dll"和"msvcp100.dll"文件。解决方法:
第一步:项目-> 项目属性->配置属性->常规->MFC 的使用:在静态库中使用 MFC。
第二步:项目-> 项目属性->配置属性->C/C++->代码生成->运行库:多线程 (/MT)。
第三步:项目-> 项目属性->配置属性->链接器->命令行->其他选项(D),在输入框中添加如下内容:
**kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib"
shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib"

这些是静态编译时目标程序中用到的静态库文件名。这样一来目标程序就不需要调用“.dll”中的动态库函数了。也就不会报缺少某某“.dll”文件了。这样编译出的目标程序会比动态编译的大几倍。搞清楚你的C++程序需要用到哪些静态库文件,然后按照上面的样子添加到“项目-> 项目属性->配置属性->链接器->命令行->其他选项(D)”中。不知道用哪些静态库文件?上网搜搜你的C++程序里的函数包含在哪些静态库文件里。