怎样给COM添加方法
我通过 add method 给COM添加一个方法后它总会报两个错误两个警告c:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : error C2259: 'CComObject<class CTest>' : cannot instantiate abstract class due to following members:
        c:\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 CTest> >::CreateInstance(void *,const struct _GUID &,void 
** )'
c:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : warning C4259: 'long __stdcall ITest::InitParam(unsigned char *,unsigned char *)' : pure virtual function was not defined
        d:\lhb\vc\comtest\comtest.h(80) : see declaration of 'InitParam'
        c:\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 CTest> >::CreateInstance(void *,const struct _GUID &,void 
** )'
c:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : error C2259: 'CComObject<class CTest>' : cannot instantiate abstract class due to following members:
        c:\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 CTest> >::CreateInstance(void *,const struct _GUID &,void 
** )'
c:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : warning C4259: 'long __stdcall ITest::InitParam(unsigned char *,unsigned char *)' : pure virtual function was not defined
        d:\lhb\vc\comtest\comtest.h(80) : see declaration of 'InitParam'
        c:\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 CTest> >::CreateInstance(void *,const struct _GUID &,void 
** )'
Generating Code...
Error executing cl.exe.COMTest.dll - 2 error(s), 2 warning(s)不知道是不是我少引用了什么头文件还是需要从哪里进行处理
在网上我没有搜到这么简单的入门问题,希高手指点,先行谢过^_^

解决方案 »

  1.   

    函数的参数不正确。对于com方法的参数应该是通用内嵌型的,可以弄个char,char*类型的试试
    另外,估计是你这增加的方法只是写了函数声明,忘记了添加实现部分代码。
      

  2.   

    你给COM添加方法的地方错了
    应该在实现COM对象的类中-->接口中添加方法
    不要在外面那个添加
      

  3.   

    对函数没做任何改动
    STDMETHODIMP CTest::InitParam(char *szUid, char *szPwd)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here return S_OK;
    }它自动生成的
    我连代码都还没加呢:(
      

  4.   

    to xhncmec(小王)
    是按照你说的方法添加的
      

  5.   

    你试一下添加InitParam方法时,参数为void ,看一下编译能否通过???
    若不行,程序只能重建了
      

  6.   

    是不是char参数需要怎样处理一下才行哦????
      

  7.   

    添加char *参数时要添加unsigned比如:
    [in]unsigned char *szUid, [out]unsigned char *szPwd
      

  8.   

    谢谢 先
    我再试一试其他类型需要注意哪些阿??
    譬如 int long 
    我选了支持MFC的
    参数支不支持CString型呢???
      

  9.   

    关于数据类型
    你还是看《COM本质论》吧,上面讲很清楚