在每个WTL示例中,CoInitialize
被称为WinMain
的第一个函数。我知道WTL基于ATL,它与COM密切相关,但正如我所看到的,WTL程序很容易不能使用任何COM代码(不是吗?)。
令人困惑的是,ATL有CComCriticalSection
等类,与COM无关,尽管有名称。
所以我的问题是:是否有必要在WTL程序中调用CoInitialize
,即使没有明确使用COM?
答案 0 :(得分:7)
不,CoInitialize
不是WTL应用程序的要求。许多WTL类与COM无关。从历史上看,正如您所提到的,WTL与ATL紧密相连,而ATL又是COM开发的主要框架,而COM初始化是一个自然的步骤,因为应用程序可能会对COM做些什么。