c - 如何解决此 MS 运行时 DLL 加载程序运行时错误 (R6034)

标签 c windows dll visual-studio-2005

这是我的情况:

我有一个与许多库链接的 C 项目(我还没有编写此应用程序),它还与 MSVCR71.dll 和 MSVCP71.dll 一起提供。即使没有这些 DLL,该程序在我安装了 MS VS2005 的系统上运行良好(确实使用了 MSVCR80.dll 和 MSVCP80.dll)。

我已将此应用程序与在我的系统上编译的其他库链接起来。现在,在与这些库链接后,应用程序无法启动,因为它无法加载 MSVCR80.dll 和 MSVCP80.dll...我说这很奇怪。

加载程序向我显示错误 R6034,应该使用 list 文件构建应用程序来解决这个问题。

这个应用程序有什么问题?


确认问题是由引入的库引起的。我可以在没有 list 或静态的情况下编译这些库吗?

仍然好奇为什么没有链接新库的应用程序找不到 MS 运行时 DLL...

最佳答案

MSVCP71.dll 是 Visual Studio 2002 使用的 dll。MSVCR80.dll 适用于 Visual Studio 2005。 因此,当您使用 VS2005 重新编译此应用程序时,您会获得新的 dll 依赖项。 您无法使用 list 解决它 - 您应该在 Visual Studio 2002 中重新编译它,或者将这些新的 dll 放入应用程序所在的同一文件夹中。

编辑: 是的,您可以将您的应用程序与静态 CRT 库链接起来,以避免对这些 dll 的外部依赖。但是,如果您链​​接的其中一个 dll 或库使用动态 CRT,则可能无法实现 - 您也应该使用静态 CRT 重新编译它们。

关于c - 如何解决此 MS 运行时 DLL 加载程序运行时错误 (R6034),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350901/

相关文章:

windows - 在 Windows 7 家庭普通版上安装 IIS

windows - 是否有一个资源可以彻底解释 Windows 内存?

python - 启动 exe 时加载 Python dll : python35. dll 时出错(错误代码 193)

c - 链表插入排序

当数据复制/扫描/读取到未初始化的指针时崩溃或 "segmentation fault"

c - strcat,将字符(文本)发送到函数中的参数 - c

windows - 重命名设备(硬编码设备名称)

c# - 无法在已部署的 matlab dll 中使用 .NET 方法

C# 奇怪的异常错误

c - 发现段错误,但正在优化之前的消息