10

我在 Windows 7 64 位的 Visual Studio 2010 中制作了一个程序。当我尝试在 Windows XP 32 位上运行它时,我收到消息说 msvcr100.dll 丢失。当我尝试将该文件从 Win7 复制到 WInXP 时,我收到 msvcr100.dll 错误的消息。如何在 VS 中设置构建以便不需要 msvcr100.dll?

4

4 回答 4

16

首先你需要确保你正在构建一个 32 位的可执行文件——64 位的不能在 32 位的 Windows 上运行。

那你也可以...

  • 随您的应用程序提供32 位可再发行组件
  • 完全删除运行时依赖项并静态链接到 C++ 运行时。为此,请设置Project -> Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime LibraryMulti-threaded (/MT)
于 2010-09-22T10:59:13.803 回答
2

静态链接运行时库应该会有所帮助。转到项目选项 -> C/C++ -> 代码生成 -> 运行时库并将值更改为多线程或多线程调试并重新编译。这样,您的应用程序不应依赖运行时 DLL。

也不要忘记构建一个 32 位的可执行文件。

于 2010-09-22T11:04:51.950 回答
2

上面的答案帮助了我,但我仍然收到错误:

致命错误 C1189:#error:请使用 /MD 开关进行 _AFXDLL 构建

因此,为了帮助其他可能像我一样花费太多时间来寻找明确解决方案的人,我想添加一些信息来为我解决这个问题。事实证明,我的项目有错误的“使用 MFC”设置来使用上面的答案。

明确地说:

打开项目属性(alt-F7 或 Project-menu -> [My Project] Properties)并转到Project -> Properties -> Configuration Properties

如果General -> Use of MFC设置为Use MFC in a Static Library

你必须设置

C/C++ -> Code Generation -> Runtime Library

要么Multi-threaded Debug (/MTd)Multi-threaded (/MT)

而如果

General -> Use of MFC设定为Use MFC in a Shared DLL

你必须设置

C/C++ -> Code Generation -> Runtime Library

要么Multi-threaded DLL (/MD)Multi-threaded Debug DLL

我从Microsoft 社区答案网站得到了这个答案,所有的功劳都应该归功于David Wilkinson

于 2013-10-07T01:32:50.713 回答
-1

在此处输入图像描述

第 1 步:转到此网站 dll-files.com。 在此处输入图像描述

dll-files.com 是一个很棒的 Windows DLL 文件存储库,几乎包含 Windows 上存在的所有 DLL 文件。

第 2 步。 现在在网站的搜索窗口中输入您的 DLL 错误。

第 3 步。DLL-Files.com 将立即列出包含该特定 DLL 文件的 zip 文件。将此 zip 文件下载到您的计算机并解压缩。提取的文件夹将包含 DLL 错误文件。

在此处输入图像描述

步骤 4. 复制下载的 DLL 文件(仅该文件)并将此文件粘贴到您的默认系统文件夹中,具体取决于您的以下操作系统。C:WindowsSystem (Windows 95/98/Me) C:WINNT\System32 (Windows NT/2000) C:\Windows\System32 (Windows XP, Vista, Windows 7/Windows 8.1/Windows 10)

Windows 会询问您是否要用新的 DLL 文件替换现有的 DLL 文件。说是,让 Windows 复制文件。重新启动您的计算机,瞧,您现在可以轻松运行未打开并给出 DLL 错误的游戏/应用程序。

还有许多其他网站会为您提供所需的 DLL 文件

于 2018-04-24T06:57:07.517 回答