vs2010MFC项目中CComPtr的使用

帆帆郑 2014-04-21 03:11:49
我建立的是vs2010MFC的项目,里边要用到CComPtr模板,但是我这样定义CComPtr<ISampleGrabber> m_pGrabber;提示我CComPtr不是模板,我加了好多头文件都不行,
#include <Atlbase.h>
#include <atlconv.h>
#include <Shlobj.h>
#include <wininet.h>
#include <afxwin.h>
#include <afxext.h>
#include <atlcom.h>
#include <initguid.h>
#include <comcat.h>

麻烦大神们给我指导下,难道CComPtr不能再vs2010MFC项目里使用吗
...全文
590 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuchur 2014-11-22
  • 打赏
  • 举报
回复
引用 6 楼 Saleayas 的回复:
使用 MFC 后, atl 的头文件就取消了 using namespace ATL;
正解。。。
bbzz2 2014-08-11
  • 打赏
  • 举报
回复
我编译一个文件 ,有如下提示,按巨龙你的方法试过,没解决,不知为什么? 1> CaptureVideo.cpp 1>d:\vs2010\vc\atlmfc\include\atlcomcli.h(268): error C2787: “ISampleGrabber”: 没有与该对象关联的 GUID 1> d:\vs2010\vc\atlmfc\include\atlcomcli.h(266): 编译类 模板 成员函数“HRESULT ATL::CComPtrBase<T>::CoCreateInstance(const IID &,LPUNKNOWN,DWORD) throw()”时 1> with 1> [ 1> T=ISampleGrabber 1> ] 1> d:\vs2010\vc\atlmfc\include\atlcomcli.h(294): 参见对正在编译的类 模板 实例化“ATL::CComPtrBase<T>”的引用 1> with 1> [ 1> T=ISampleGrabber 1> ] 1> e:\study\vc++\mfc教材\camera_demo\camerademo\capturevideo.h(56): 参见对正在编译的类 模板 实例化“ATL::CComPtr<T>”的引用 1> with 1> [ 1> T=ISampleGrabber 1> ]
帆帆郑 2014-04-29
  • 打赏
  • 举报
回复
确实是的,要加ATL::,并且把ATL的头文件都加上的,而且我可能是安装vs2010的目录有变化,所以#include "atlcomcli.h"这个文件是在安装目录下的,拷到项目目录就可以了,谢谢各位了
Saleayas 2014-04-22
  • 打赏
  • 举报
回复
使用 MFC 后, atl 的头文件就取消了 using namespace ATL;
lis2012 2014-04-22
  • 打赏
  • 举报
回复
最好把atl相关的头文件添加进去,然后使用atl::
allenhiman 2014-04-21
  • 打赏
  • 举报
回复
用是肯定可以用的 我解析xml经常用 CComPtr<IXMLDOMDocument> spDoc; 你先敲入这个代码试试 如果这代码没错误 可能是你的接口ISampleGrabber有问题
oyljerry 2014-04-21
  • 打赏
  • 举报
回复
加上namespace
Saleayas 2014-04-21
  • 打赏
  • 举报
回复
加上 ATL::
帆帆郑 2014-04-21
  • 打赏
  • 举报
回复
Up一下,是不是CComPtr在MFC不能用呢
帆帆郑 2014-04-21
  • 打赏
  • 举报
回复
Up一下,大神们给看看啊

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧