0

我使用 Visual Studio 2010 在 C++ 中编写了一个程序,但是当我在某些使用 WinXP 的计算机上运行它时,它显示“无法启动,因为找不到 MSVCP100.dll”

如何防止对 Windows 不附带的 dll 的这种依赖?

谢谢你。

4

2 回答 2

1

你不能阻止这种依赖,因为它是 Visual C++ 的核心运行时库。相反,在您的应用程序中包含 Visual C++ 2010 Redistributable 包(通常一个单独的链接就足够了,因为大多数人已经安装了它)

但是,如果实际上您的程序无法启动,因为一个以 D 结尾的 dll,例如 MSVCP100D.dll,那么您需要在发布模式下构建您的程序,默认情况下会将运行时间切换到非调试版本。您需要仔细检查项目中包含的任何其他包含的静态和动态库,以确保所有调试或所有发布版本都与您的构建相匹配。

如果您在查找哪些子项目引用了调试版本时遇到问题,您可以下载并运行depends.exe 并浏览该exe 文件来查看。

于 2012-05-11T06:18:47.303 回答
1

抱歉迟到了,但是是的,您可以防止这种依赖,只需转到 yopur 项目的解决方案属性,转到 C/C++ > 代码生成器,然后在运行时库中将其从 MDd 更改为 MTd,将静态包含依赖库,并且不在运行时,这样在尝试运行 Dll 时避免运行时错误。

于 2014-03-03T09:51:31.827 回答