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