Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 组合数据库错误(尚未调用CoInitialize)_C++_Dll_Com - Fatal编程技术网

C++ 组合数据库错误(尚未调用CoInitialize)

C++ 组合数据库错误(尚未调用CoInitialize),c++,dll,com,C++,Dll,Com,onecore\com\cobase\objact\objact.cxx(812)\cobase.dll!00007FF8BD322169:(调用方:00007FF8BD320F78)尚未调用ReturnHr(1)tid(b54)800401F0协同初始化 我正在使用Visual Studio 2015,并已开始收到以下错误消息。我不想写dll,也不想使用COM对象或其他东西。这只是一个简单的OpenGL程序。我不知道这个错误消息是从哪里来的。如何摆脱它?您正在隐式使用COM。没有代码,我们就无

onecore\com\cobase\objact\objact.cxx(812)\cobase.dll!00007FF8BD322169:(调用方:00007FF8BD320F78)尚未调用ReturnHr(1)tid(b54)800401F0协同初始化


我正在使用Visual Studio 2015,并已开始收到以下错误消息。我不想写dll,也不想使用COM对象或其他东西。这只是一个简单的OpenGL程序。我不知道这个错误消息是从哪里来的。如何摆脱它?

您正在隐式使用COM。没有代码,我们就无法准确地知道。它可能来自shell api、公共文件对话框、操纵杆处理等

您需要将
CoInitialize(0)在某些主函数(或WinMain或wWinMain)的开头,以及
conInitialize()在函数末尾。如果需要使用特定的并发模型,还可以使用
CoInitializeEx


我的程序在WinMain中调用CoInitialize(NULL),但在加载一些DLL时(在运行之后),我仍然看到此错误 但是,我在尝试枚举系统中的声卡时也会遇到同样的错误。
解决方案是使用coinitializex(NULL,COINIT\u多线程),这将确保允许从任何线程进行COM调用。

请提供代码。检查调试器中的程序。给我们一个机会,帮助我们提供更多信息!代码不会有帮助,因为自从上次运行以来,我没有做任何更改。另外,代码在许多文件中有数千行。我会发布什么代码?在这种情况下,你必须告诉我们更多关于代码结构的信息。见Daniel Sęk的回答。如果你不写更多的东西,你的问题就结束了,这应该不会很奇怪。谢谢,但是我不能发布代码,因为它不会有多大帮助。在许多独立的模块中有成千上万行代码。发布代码也没用。我已经好几个月没有对代码做任何修改了。我最近才回来,发现了这个错误。这没有道理。我想可能是因为我更新了VS2015软件。我确实使用DirectX读取XBox控制器。也许是,谢谢,这个解决方案解决了这个问题。这个警告的后果是什么?除了令人讨厌之外,为什么要抑制警告?如果没有正确设置线程模型,使用COM的组件可能会失败。似乎有些组件只是通过自己调用来纠正缺少的
CoInitialize
coinitializex
。有时您可能会得到冲突的模型,所以最好在应用程序启动时显式地选择它。