我知道这有点含糊,我只是在这里寻求一般可能性,以使我步入正轨。

我在MFC Dialog程序中包含两个库及其.h,并进行编译,没问题。当我从一个库中调用一个函数时,它弹出一个对话框,提示“ Com Error”“ CoInitialize Failed”。那不是我实际调用该函数的时间,而是当程序开始运行时。我的假设是,当看到函数时,它实际上在lib中调用,当它出现时,可能在我的MFC程序中的CoInit之前调用了CoInit,从而产生了冲突?

单步执行代码,似乎将其抛出CDialog :: DoModal

我总是可以添加更多详细信息,我只是希望能够朝着正确的方向发展。提前非常感谢您的帮助!

编辑:

问题是,我不知道DLL在哪里调用CoInitialize。我真的不能发布代码,因为即使是一个简单的程序,代码也太多了。我将尝试依赖遍历,并检查我的InitInstance ...还有其他建议吗?非常感谢你们

最佳答案

尝试添加自己对CoInitializeEx的调用,并确保在主线程中使用STA(SingleThreadedApartment)线程。

可能会将您的主线程设置为MTA,但是您的库期望并需要STA,因此CoInitialize调用失败。

09-04 17:46