Com MFC GUI的E_NOINTERFACE不适用于Win32控制台应用程序

Com MFC GUI的E_NOINTERFACE不适用于Win32控制台应用程序,com,Com,使用VS2010和Microsoft SDK v7.0a在Win7 SP1下运行。如果我为Win32 console应用程序创建VS2010项目,则在regsvr32.exe注册的COM DLL上的CreateInstance会成功。如果我为MFC GUI创建VS2010项目,则相同的CreateInstance会失败,并出现E_NOINTERFACE。尝试了Unicode和多字节,对Win32控制台应用程序都有效,对MFC GUI都失败。这怎么可能 如果我通过Win32控制台应用程序执行F11

使用VS2010和Microsoft SDK v7.0a在Win7 SP1下运行。如果我为Win32 console应用程序创建VS2010项目,则在regsvr32.exe注册的COM DLL上的CreateInstance会成功。如果我为MFC GUI创建VS2010项目,则相同的CreateInstance会失败,并出现E_NOINTERFACE。尝试了Unicode和多字节,对Win32控制台应用程序都有效,对MFC GUI都失败。这怎么可能

如果我通过Win32控制台应用程序执行F11,我最终会看到CreateInstance在IUnknown上访问QueryInterface[成功]。如果我通过MFC GUI访问F11,它永远不会到达查询接口

我已经看到一些关于ADO版本/升级的讨论,但这里有一个系统在Win32控制台应用程序中成功,而在MFC GUI中失败。怎么做

更新:我错误地允许使用Windk comip.h而不是VS2010 comip.h。但即使纠正了这一点,问题仍然存在


还发现在64位机器上编译的相同MFC GUI项目和源代码不会失败。只有我的32位机器可以。两者都可以访问CreateInstance调用堆栈中的QueryInterface,但32位机器返回失败,而64位机器返回成功。

得益于MSDN技术支持,我了解到MFC GUI不支持COM所需的“自由线程”