R6030 CRT未初始化

问题描述 投票:3回答:2

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

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

这里的问题是如果客户的应用程序首先启动然后加载我们的DLL,那么没有问题。但在另一种情况下,如果客户的应用程序只加载msvcr100.dll并且没有加载msvcp100.dll然后加载我们的dll,那么我们会收到错误“R6030 CRT Not initialized”

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

c++ visual-c++ mfc atl
2个回答
0
投票

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

但我想知道这一点。在内部,较新的DLL与先前的构建二进制兼容。因此,因为您使用旧版本构建,所以较新版本“不应该”破坏您的应用程序。

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


0
投票

我不确切地知道原因,但我发现可以通过在某些计算机中将Microsoft IME 2010更改为Microsoft标准IME来解决R6030运行时错误。它可能与Microsoft Office 2010有关。另外,请在Windows - start - msconfig - service选项卡上取消选中“图像保护服务”。

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

Microsoft IME change

Image Protect Service


推荐问答