ATL Module 类
本主题讨论 ATL 7.0 中新增的模块类。
CComModule 替换类
早期版本的 ATL 使用 CComModule
。 在 ATL 7.0 中,CComModule
功能被几个类取代:
CAtlBaseModule 包含大多数使用 ATL 的应用程序所需的信息。 包含模块的 HINSTANCE 和资源实例。
CAtlComModule 包含 ATL 中 COM 类所需的信息。
CAtlWinModule 包含 ATL 中的窗口类所需的信息。
CAtlDebugInterfacesModule 包含对接口调试的支持。
CAtlModule 将自定义以下派生自
CAtlModule
的类以包含特定应用程序类型所需的信息。 这些类中的大多数成员都可以被覆盖:CAtlDllModuleT 用于 DLL 应用程序。 为标准导出提供代码。
CAtlExeModuleT 用于 EXE 应用程序。 提供 EXE 中需要的代码。
CAtlServiceModuleT 支持创建 Windows NT 和 Windows 2000 服务。
CComModule
仍可用于向后兼容。
分发 CComModule 功能的原因
CComModule
的功能被分配到几个新的类中,原因如下:
细化
CComModule
中的功能。对 COM、窗口、接口调试和特定于应用程序(DLL 或 EXE)功能的支持现在属于单独的类。
自动声明每个模块的全局实例。
所需模块类的全局实例链接到项目中。
无需再调用 Init 和 Term 方法。
Init 和 Term 方法已移至模块类的构造函数和析构函数中;不再需要调用 Init 和 Term。