COM 是 WTL 的必要条件吗?

Is COM a requirement for WTL?

在每个WTL例子中,CoInitialize作为WinMain的第一个函数被调用。我知道WTL是基于ATL的,它与COM密切相关,但在我看来,一个WTL程序很容易不使用任何COM代码(不是吗?)。

更让人困惑的是,ATL有类如CComCriticalSection,尽管名字叫

,但与COM无关。

所以我的问题是:即使没有显式使用 COM,是否有必要在 WTL 程序中调用 CoInitialize

不,CoInitialize 不是 WTL 应用程序的要求。许多 WTL 类 与 COM 无关。正如您所提到的,从历史上看,WTL 与 ATL 紧密相连,而 ATL 又是 COM 开发的主要框架,COM 初始化是一个自然的步骤,因为应用程序可能无论如何都要用 COM 做一些事情。