这些标题中的哪一个来自MSVCR100.DLL?

时间:2011-05-16 21:00:35

标签: c++ dll header include header-files

我正在开发一个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)

2 个答案:

答案 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”。