您的位置:首页 > 其它

在ATL中怎么不能用模板类作为参数?

2008-12-09 08:49 169 查看
ATL里函数为什么不能用模板类做参数?
比如这个形式就不行:

void SketchProfile(CComPtr<IFeature> &pFeat,CString&strPrt,CFile&prtFile);
因为有时候IFeature*和CComPtr<IFeature>在一定程度上可以等价,所以我将上面的改成下面的形式:

void SketchProfileIFeature* &pFeat,CString&strPrt,CFile&prtFile);

居然能够定义成功,我确实喜了一把,结果千辛万苦把代码放到这个函数,在别的函数里调用这个函数的时候,

调用如下:

void SketchProfile(pFeat,strPrt,prtFile);这里的pFeat类型是CComPtr<IFeature>

编译就出现了这么个大错误:error C2664: 'SketchProfile' : cannot convert parameter 1 from 'class ATL::CComPtr<struct IFeature>' to 'struct IFeature *& '

为什么呢,请高手指点

(2008年12月16日9:19:07)

补充:虽说上面的不可以,但是我如果仅仅让其在我的单个文件里建立函数,void SketchProfile(CComPtr<IFeature> &pFeat,CString&strPrt,CFile&prtFile);既不是接口函数,又不是成员函数,就可以,并且调用都是成功的,这个太奇怪了,哪位告诉能否解释下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: