转帖msvcp100.dll和msvcr100.dll

Posted jinanxiaolaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转帖msvcp100.dll和msvcr100.dll相关的知识,希望对你有一定的参考价值。

VS发布软件时去除msvcp100.dll和msvcr100.dll图解说明

https://blog.csdn.net/yu__jia/article/details/82753262

msvcp、msvcr、vcomp140.dll属于VC++2015版  


msvcp、msvcr、vcomp120.dll属于VC++2013版  


msvcp、msvcr、vcomp110.dll属于VC++2012版  


msvcp、msvcr、vcomp100.dll属于VC++2010版  


msvcp、msvcr、vcomp90.dll属于VC++2008版   
---------------------
作者:安静平和
来源:CSDN
原文:https://blog.csdn.net/CNHK1225/article/details/76183950
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yu__jia/article/details/82753262

最近开发个程序,Copy到虚拟机环境中测试时提示缺少msvcr100.dll,于是想到编译时设置选项去除依赖。

 

什么是 msvcr100.dll 

MS = Microsoft
 V = Visual
 C = C program language
 R = Run-time
 100 = Version

什么是 msvcp100.dll

MS = Microsoft
 V = Visual
 CP = C++
 100 = version

VS中的多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)的区别

一种语言的开发环境往往会附带有语言库,这些库就是对操作系统的API的包装,我们也称这些语言库为运行库

对于MSVC的运行库(CRT),按照静态/动态链接,可以分为静态版和动态版;按照调试/发布,可以分为调试版本和发布版本;按照单线程/多线程,可以分为单线程版本和多线程版本(但是目前VS中已不提供单线程版本了)

在调试模式下,使用调试运行库:多线程调试(/MTd)、多线程调试DLL(/MDd)

在发布模式下,使用发布运行库:多线程(/MT)、多线程DLL(/MD)

调试模式下运行库带d,但发布模式不带。调试与发布的区别在于,发布模式省略了程序的调试信息,简单来说就是删除了调试模式下的用于调试的内容,所以一般情况下,发布模式下生成的可执行文件的大小比调试模式下生成的要小

静态链接:多线程(/MT)、多线程调试(/MTd)

动态链接:多线程DLL(/MD)、多线程调试DLL(/MDd)

动态链接为D,静态链接为T。两者的区别在于,静态链接将程序所依赖的运行库集成到了可执行文件中,可执行文件运行时不再需要运行库;动态链接没有把程序所依赖的运行库集成到可执行文件中,可执行文件运行时需要运行库。由于静态链接将程序所依赖的运行库集成到了可执行文件中,一般情况下,生成的可执行文件的大小大于动态链接生成的

对这四种运行库的选在位于VS的项目属性-》C/C++-》代码生成-》运行库:

技术图片

 

解决的办法

Release版本

Visual Studio 2010, 打开菜单中的项目》属性:

技术图片

打开 配置属性 | C/C++ | 代码生成

找到 运行库.将 多线程DLL(/MD) 改为 多线程(/MT)

技术图片
重新编译.

技术图片

Debug版本

Visual Studio 2010, 打开菜单中的项目》属性:
技术图片

打开 配置属性 | C/C++ | 代码生成

找到 运行库.将 多线程调试DLL(/MDd) 改为 多线程调试(/MTd)

技术图片
重新编译.

技术图片

以上是关于转帖msvcp100.dll和msvcr100.dll的主要内容,如果未能解决你的问题,请参考以下文章

vs2010发布时去除msvcp100 dll和msvcr100 dll图解说明

运行单机游戏时 显示缺少msvcr100.dll 怎么办啊

我的程序无法在没有 VS MSVCR100.dll 的计算机上运行

0x5746723c (msvcr100d.dll) 处最可能的异常: 0xC0000005: 读取位置 0xccccccc8 时发生访问冲突

如何处理缺少的 dll,如 msvcp100.dll、msvcp100.dll?

由于找不到MSVCR120.dll和MSVCP120.dll,无法继续执行代码