在每个 WTL 示例中, CoInitialize
被称为 WinMain
的第一个函数。我知道 WTL 是基于 ATL 的,它与 COM 密切相关,但在我看来,WTL 程序很容易不使用任何 COM 代码(不是吗?)。
更令人困惑的是,ATL 具有诸如 CComCriticalSection
之类的类,尽管名称与 COM 无关。
所以我的问题是:是否有必要在 WTL 程序中调用 CoInitialize
,即使没有明确使用 COM?
最佳答案
不,CoInitialize
不是 WTL 应用程序的要求。许多 WTL 类与 COM 无关。从历史上看,正如您所提到的,WTL 与 ATL 紧密相连,而 ATL 又是 COM 开发的主要框架,并且 COM 初始化是一个自然的步骤,因为无论如何应用程序都可能对 COM 执行某些操作。
关于winapi - COM 是 WTL 的要求吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29121832/