首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我尝试使用_pAtlModule函数CreateInstance时,CComObject指针为空

当我尝试使用_pAtlModule函数CreateInstance时,CComObject指针为空
EN

Stack Overflow用户
提问于 2015-10-13 09:34:52
回答 1查看 2.8K关注 0票数 3

我正在开发OPC(OLE process Control)客户端程序,使用异步回调方法从KepServer.But获取数据--我遇到了以下问题:

代码语言:javascript
复制
CComObject<COPCDataCallback>* pCOPCDataCallback;    // Pointer to Callback Object

// Create Instance of Callback Object using an ATL template
CComObject<COPCDataCallback>::CreateInstance(&pCOPCDataCallback);

然后它停在这里:

代码语言:javascript
复制
_pAtlModule->Lock();

这是atlcom.h中的

对如何解决这个问题有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-13 10:49:26

当您使用类似于ATL类CComObject时,假设您有一个ATL项目,其中定义了"ATL模块“类,例如基于CAtlExeModuleT的EXE应用程序。

由于没有定义模块类/实例,因此不存在全局内部_pAtlModule变量的初始化问题。您需要添加模块类。

添加ATL支持的方法之一是使用IDE,通常如果您的现有项目是基于MFC的:

另一种方法是添加CAppModule实例,如果您的项目使用WTL:

然后,第三种方法是使用Visual向导创建一个匹配类型(EXE或DLL)的新的干净ATL项目,并检查CAtlDllModuleTCAtlExeModuleT类周围的代码,然后在现有项目中复制它。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33099122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档