我在 Visual Studio 10 中编译项目,编译的可执行文件在 win 7 上运行良好,但由于缺少 msvcrt100.dll,它在 win xp 上不起作用。我尝试使用“/NOTDEFAULTLIB”,但它也删除了我使用的其他一些外部库。有没有办法不链接到最新的 Microsoft 运行时库?
提前致谢。
我在 Visual Studio 10 中编译项目,编译的可执行文件在 win 7 上运行良好,但由于缺少 msvcrt100.dll,它在 win xp 上不起作用。我尝试使用“/NOTDEFAULTLIB”,但它也删除了我使用的其他一些外部库。有没有办法不链接到最新的 Microsoft 运行时库?
提前致谢。
要不链接到 DLL,您必须静态链接到运行时。
为此,请转到 C/C++ 属性 -> 代码生成,然后在运行时库下从下拉列表中选择多线程 (/MT) 或多线程调试 (/MTd)。请注意,一旦您使用静态运行时库,您链接的所有其他库代码也必须使用相同的设置构建。而且您可能还必须在附加依赖项下的链接器 -> 输入中添加其他库。
它只能在 Windows 7 机器上运行,之前有人安装了那个 DLL。
除了创建安装程序(使用安装项目轻松完成)之外,一个简单的修复方法是将 msvcr100.dll 与您自己的二进制文件一起复制。如果您只有一个 EXE,那么简单的解决方案是链接 CRT 的静态版本。切换到 Release 构建,右键单击项目,Properties,C/C++,Code Generation,Runtime Library 设置。将其从默认的 /MD 更改为 /MT。