重命名 Visual Studio 2008 MFC 项目后出现 R6034 运行时错误
Posted
技术标签:
【中文标题】重命名 Visual Studio 2008 MFC 项目后出现 R6034 运行时错误【英文标题】:R6034 runtime error after renaming Visual Studio 2008 MFC project 【发布时间】:2012-12-18 22:46:24 【问题描述】:我最近的任务是对我们公司的一种产品进行完全重命名。目前它是在 Visual Studio 2008 中使用 MFC 构建的。我尝试通过使用查找/替换以及重命名各种项目属性从 Visual Studio 中进行重命名;但是,当我运行它时(成功构建/链接后),我收到以下错误:
运行时错误!
程序:d...
R6034
应用程序已尝试 错误地加载 C 运行时库。请联系应用程序的支持团队了解更多信息。
我想我搞砸了,所以我提取了一个干净的项目副本,确认它构建/链接/运行良好,然后继续使用外部编辑器重命名。经过一个乏味的小时左右后,我重新命名了所有内容。运行时遇到同样的R6034错误。
我开始深入研究这个错误,大多数时候它似乎是由缺少清单文件引起的。我比较了应用程序设置的良好(原始名称)副本,除了几个名称之外,一切都是相同的。清单正在生成并被嵌入。我在 VS2008 中打开了可执行文件并确认 RT_MANIFEST 存在并且 ID 为 1。清单本身与工作程序集中的清单相同。我尝试使用外部清单,但出现了同样的问题。
看起来我可能不得不手动移植整个应用程序,但我仍然无法知道这是否真的有效。有什么想法吗?
【问题讨论】:
你能发布你的清单文件吗?可能是您的程序之前的版本使用 MS CRT 7.0 文件,而新版本要使用 8.0。 无聊的答案但是......我认为你需要在重命名时放慢一点。进行一些更改,然后构建和测试,重复。您最终会发现是哪个重命名导致了问题。这通常归结为尝试同时加载 Debug CRT 和 Release CRT。 感谢 cmets。我弄清楚了这个问题。请参阅即将发布的答案。 cha - 这绝对不是试图使用错误版本的 CRT。这两个清单文件的版本和全部相同。 snowdude - 这是我的下一步行动。有很多事情要做,但看起来很合理。幸运的是,现在这不是问题。 【参考方案1】:好吧,我想通了。我希望我有一些深刻的洞察力,但这是一个简单的错误:
与重命名(错误 #1)同时执行的其他任务之一是删除解决方案中的英特尔 Fortran 库项目。该代码很少(如果曾经更改),因此我们希望将其删除以简化在未安装英特尔编译器的另一台机器上构建的过程。此步骤的一部分是将库手动添加到链接器输入列表中。好吧,我不小心将发布库添加到调试版本中,这就是问题的原因。一旦我更正它并使其成为正确链接的调试版本。
我不太明白这导致问题的原因。我过去曾在调试版本中使用过发布库(反之亦然),但由于某种原因,将 Intel 和/或 Fortran 混在一起搞砸了。
感谢大家的时间。
【讨论】:
以上是关于重命名 Visual Studio 2008 MFC 项目后出现 R6034 运行时错误的主要内容,如果未能解决你的问题,请参考以下文章