为什么我需要安装MSVC++ redist.

Sil*_*ian 5 winapi msvcrt visual-studio visual-c++

我正在学习VC++,但我想知道为什么最终用户也需要MSVC++?

据我所知,在MSDN中,如果不是我的程序使用的所有库(实际的DLL文件)已经附带系统本身(user32.dll,kernel32.dll等).

但是Paint和Notepad怎么不需要MSVC++,但是我的软件比Notepad更简单需要这个运行时?运行时有什么作用?它是如何工作的?有没有办法让我的软件在没有MSVC++的情况下工作?

Ben*_*igt 8

运行时提供所有标准函数和类,例如std::stringstd::vector,以及运行全局对象的构造函数和析构函数的支持代码,查找异常处理程序等.Windows随附所有这些的版本,并且使用Visual C++一段时间它,但发现与标准不兼容,所以编译器的新版本带有修复程序(Windows无法捆绑新的修补程序代替旧的DLL,因为它会破坏现有的程序).

是的,您可以避免使用运行时可再发行组件安装程序.您可以使用/MT构建选项,它将所有必需的库函数捆绑到您的可执行文件中.之后,您只需要Windows附带的DLL.

该设置位于C/C++ - >代码生成 - >运行时库下的项目配置中

但请注意,这将使您的可执行文件更大,并且任何错误修复(尤其是通过Windows Update分发的安全修复程序)都不会影响您的程序,因为您已经完成了特定的实现.