在运行我刚刚从VS2003更新(和清理)的程序时,我收到此R6034错误 - > VS2008。更确切地说:
“R6034:一个应用程序已经成功了 尝试加载C运行时库 不正确“。
在跑步的时候似乎几乎都在同一个地方。我不知道为什么,但我尝试了一些谷歌这个时发现的建议。例如,添加msvc dll,但这不起作用。
有关此错误发生原因的任何帮助都会很棒。感谢
答案 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,但这应该也可以。
希望这足以让你开始。