"C Run-Time Error R6034"(转)

Regarding "C Run-Time Error R6034"

Microsoft's recommendation is very confusing. That is, it recommends to include a manifest file and to re-compile the project.

I recently had a problem with 'R6034' error message  even with a manifest file already included!

In my case, Visual Studio 2005 compiles and builds a DEBUG-configuration of some DLL. But, as soon as I try to start an
application that uses that DLL the loader can't load the DLL and displays an error message with error code 'R6034'.

It happened because two Run-Time DLLs were referenced in my DLL by some reason! As soon as I looked
inside of my DLL I found two strings: ' msvcr80d.dll' and ' msvcr80.dll', and  the 2nd one is the reason of that run-time problem.

In order to resolve the problem I added ' msvcrt.lib' to the list of ignored libraries for  DEBUG-configuration:

[Configuration Properties] -> [Linker] -> [Input] -> 'Ignore Specific Library' -  msvcrt.lib  


==============================================================
C Run-Time Error R6034
Error Message
An application has made an attempt to load the C runtime library without using a manifest. This is an unsupported way to load Visual C++ DLLs. You need to modify your application to build with a manifest. For more information, see the "Visual C++ Libraries as Shared Side-by-Side Assemblies" topic in the product documentation.

Applications must use a manifest to load the C runtime library. For more information, see Visual C++ Libraries as Shared Side-by-Side Assemblies and Manifest Generation in Visual Studio.

In release builds, the diagnostic message reads: "An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information."

To correct this error
  • Rebuild your application with a manifest. Building an application with Visual Studio automatically puts the manifest into the resulting EXE or DLL file. If you are building at the command line, use the mt.exe tool to add the manifest as a resource. Use resource ID 1 if building an EXE, 2 if building a DLL. For more information, see How to: Embed a Manifest Inside a C/C++ Application.




Reference:
http://msdn.microsoft.com/en-us/library/ms235560%28VS.80%29.aspx 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值