R6034:应用程序尝试错误地加载C运行时库

时间:2010-06-16 10:03:52

标签: visual-studio-2008 dll

在运行我刚刚从VS2003更新(和清理)的程序时,我收到此R6034错误 - > VS2008。更确切地说:

  

“R6034:一个应用程序已经成功了   尝试加载C运行时库   不正确“。

在跑步的时候似乎几乎都在同一个地方。我不知道为什么,但我尝试了一些谷歌这个时发现的建议。例如,添加msvc dll,但这不起作用。

有关此错误发生原因的任何帮助都会很棒。感谢

2 个答案:

答案 0 :(得分:2)

从Visual Studio 2005开始,您必须使用清单文件引用C运行时。 通过将它们放在路径中来引用DLL会产生上述错误。

清单文件如下所示:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

您可以使用MT命令将清单集成为应用程序中的资源,但这不是必需的。除了你的应用程序之外,它还允许使用清单(如MYAPP.EXE.MANIFEST)。

答案 1 :(得分:0)

以下测试程序:

#include <iostream>
#include <crtdefs.h>

void main()
{
std::cout << "Hello World" << std::endl;
}

使用这些命令编译(Visual Studio 2005):

cl /EHsc /MD /c test.cpp
link test.obj

创建可执行文件(TEST.EXE)和清单文件(TEST.EXE.MANIFEST),如下所示:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

我没有尝试使用VS2008,但这应该也可以。

希望这足以让你开始。