R6030 CRT未初始化

时间:2014-04-28 08:50:07

标签: c++ visual-c++ mfc atl

我们在客户现场遇到问题;客户使用2011年2月19日的VS2010 Runtime和版本10.0.40219.1构建了他的应用程序 客户的应用程序使用我们的dll,它也是使用VS2010 Runtime构建的,但版本略旧。

我们在out安装程序中有一个选项可以跳过VC Runtime可重新分发的安装,这里客户已经跳过,因为他已经安装了运行时。

这里的问题是如果客户的应用程序首先启动然后加载我们的DLL,那么没有问题。但在另一种情况下,如果客户的应用程序仅加载msvcr100.dll并且不加载msvcp100.dll 然后当我们的dll加载时,我们得到一个错误“R6030 CRT未初始化”

这是因为运行时不兼容问题,是否应该使用完全相同的版本编译运行时和应用程序?

2 个答案:

答案 0 :(得分:0)

是的!我建议您使用您构建的CRT随附程序。

但我对此感到疑惑。在内部,较新的DLL与先前的构建二进制兼容。因此,因为您使用旧版本构建,所以较新版本"不应该"#34;打破你的申请。

我总是在使用VC Runtimes的本地安装时避免这个问题。

答案 1 :(得分:0)

我并不完全了解原因,但我发现可以通过在某些计算机中将Microsoft IME 2010更改为Microsoft标准IME来解决R6030运行时错误。它可能与Microsoft Office 2010有关。另外,请取消选中"图像保护服务"在Windows - 开始 - msconfig - 服务选项卡。

请参阅以下屏幕截图。很抱歉屏幕截图中的语言是韩语。

Microsoft IME change

Image Protect Service