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

来源:互联网 发布:淘宝店怎么刷信誉 编辑:程序博客网 时间:2024/04/30 03:28

 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);既不是接口函数,又不是成员函数,就可以,并且调用都是成功的,这个太奇怪了,哪位告诉能否解释下

原创粉丝点击