如何不对msvcr100.dll进行链接

How to not link against msvcr100.dll?

本文关键字:链接 dll msvcr100 何不      更新时间:2023-10-16

我正在Visual Studio 10中编译项目,编译后的可执行文件在win 7上运行良好,但由于缺少msvcrt100.dll,它在win xp上不起作用。我尝试使用"/NOTDEFAULTLIB",但它也删除了我使用的其他一些外部库。有没有办法不链接到最新的Microsoft运行库?

提前谢谢。

要不链接DLL,必须静态链接运行时。

要执行此操作,请转到"C/C++属性"->"代码生成",然后在"运行库"下的下拉列表中选择"多线程(/MT)"或"多线程调试(/MTd)"。请注意,一旦您使用了静态运行库,您链接的所有其他库代码也必须使用相同的设置构建。您还可能需要在"附加依赖项"下的Linker->Input中添加额外的库。

它只是偶然地在Windows7机器上工作,之前有人安装了那个DLL。

除了创建安装程序(使用安装程序项目很容易)之外,一个简单的修复方法是将msvcr100.dll与您自己的二进制文件一起复制。如果你只有EXE,那么简单的解决方案就是链接CRT的静态版本。切换到Release版本,右键单击项目、属性、C/C++、代码生成、运行库设置。将其从默认值/MD更改为/MT。