描述:
各位大大, 我第一次用ATL COM AppWizard生成一个dll, 然后向其中添加了一个ATL object(Sample object), 在向atl object中添加方法的时候出现如下问题:
1.只要添加的方法无参数, 一切ok, compile没有问题
2.只要方法带参数, 就会出现编译错误(我用的时char *类型的参数, 不知道是不是这个不合乎规范?)
错误信息如下:
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : error C2259: 'CComObject<class Ctt>' : cannot instantiate abstract class due to following members:
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1823) : while compiling class-template member function 'long __stdcall ATL::CComCreator<class ATL::CComObject<class Ctt> >::CreateInstance(void *,const struct _GUID &,void **)'
望各位大侠不吝赐教~,谢谢
解决方案1:
你可以先不填参数,等生成了后,再手工加参数,只需改3个地方,也挺简单的。char*最好改为BSTR,如上面所讲。
解决方案2:要使用BSTR做参数,并且BSTR要用SysAllocString来申请