我正在开发一个cpp应用程序,在我正在开发的虚拟机上正常工作但在我的笔记本电脑(没有c ++可再发行组件包的XP)中显示错误,说应用程序需要MSVCR100.DLL而且它不在计算机中。我没有直接在应用程序的任何地方引用DLL,所以我想这可能是因为包含了标题。我不想使用这个dll包含,我更喜欢该应用程序在没有它的情况下工作。这些是标题:
#include <winsock2.h>
#include <windows.h>
#include <process.h>
#include <shellapi.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
我尝试评论一些,但为了评论其他我只需要更改太多代码进行测试。
其中哪一个标题来自MSVCR100.DLL?
项目设置“运行时库”设置为多线程(/ MT)。
答案 0 :(得分:0)
我认为MSVCR100.DLL是Visual Studio 2010的C运行时库。我想你的labtop没有安装Visual Studio。所以你必须在你的应用程序中提供这个DLL。它应该在你的开发系统上。
答案 1 :(得分:0)
每当使用Visual Studio 2010编译程序时,C库中的所有内容都依赖于它。因此,您可以静态链接C运行时,也可以将DLL与应用程序一起部署。
如果你想知道,stdlib.h,stdio.h,cmath.h依赖于它,而且很可能很多依赖于C运行时的头文件间接地包含在你的所有其他头文件中。所以我说你的所有标题都依赖于MSVCR100.DLL。
另一种解决方案是在2010年安装Visual Studio 2008 + SP1(VC ++ express 2008正常工作)并在项目属性中选择“Toolset v90”。