我想用com创建一个dll,但是入口参数好像不能传入字符串,请问该如何办?
还有就是出口是怎么设计的,好像返回值都是HResult类型的,如果想返回一
个字符串怎么办?

解决方案 »

  1.   

    建议你还是至少现简单了解一下COM理论,
    COM接口的目的就是公用,对于CString这样的类,是不能满足COM接口的这一目的的,对于字符串COM接口中的定义可以采用BSTR.
      

  2.   

    参数类型为out即为输出参数,为retval即为返回值,如MyFunc([out,retval]BSTR MyRet)即为一个返回一个字符串的函数。
      

  3.   

    HRESULT MyFunc([in]BSTR inStr,[out,retval]BSTR* outStr)
      

  4.   

    没有,你可以用BSTR类型,
    CStrin csTemp;
    eg:YourFunction((BSTR)csTemp.GetBuffer(csTemp.GetLength());
        csTemp.ReleaseBuffer();
      

  5.   

    然后在你的COM程序的函数里用
     CString csTemp
    csTemp.Format("%s",(char *)pBSTR);