其他分享
首页 > 其他分享> > c – ATL / WTL是否仍然需要使用全局_Module变量?

c – ATL / WTL是否仍然需要使用全局_Module变量?

作者:互联网

我刚刚开始一个新的ATL / WTL项目,我想知道是否还需要全局_Module变量?

回到我开始使用WTL几年后,您需要(至少对于ATL 3.0)定义一个全局变量,例如:

CAppModule _Module;

让ATL正常工作.但是最近我在某处读到了这可能不再需要了(但是向导生成的代码仍然使用它).我还搜索了Visual C包含的目录,它只在几个地方选择了_Module – 最值得注意的是ATL COM注册表内容.

那么我现在还需要定义一个全局变量来使用ATL吗?

解决方法:

从技术上讲,您不需要自ATL / WTL版本7以来的全局_Module实例.早期的ATL / WTL代码通过此特定名称引用_Module,并期望您声明此对象的单个实例.这已经被一个名为_AtlBaseModule的单个实例对象所取代,该对象在atlcore.h中自动为您声明.

尽管如此,一些最好的WTL功能包含在CAppModule及其基类CComModule中.自动COM注册,消息循环处理等.因此,大多数基于WTL的非常重要的应用程序仍然需要CComModule基类的单例实例.但是,它不需要命名为_Module.

标签:atl,wtl,c
来源: https://codeday.me/bug/20190827/1744331.html