在ATL中加入一个函数如 fun(CComBSTR st) 报错,难道不能用CComBSTR做参数吗?
还有我看书上说:_bstr_t适合COM客户程序,CComBSTR适合服务器端程序,此话怎讲是不是该这样理解:组建先定义 
fun(BSTR st)
{//把st先转换为CComBSTR
CComBSTR str;
str=st;//不知道是不是该这样转换,书上写的BSTR和CComBSTR之间的转换很复杂,还是该用attach或copyto
.....
}
客户端用的时候
_bstr_t str;//不知道这需不需要做什么关于_bstr_t 和BSTR之间的转换
fun(str);刚学,请高手指点

解决方案 »

  1.   

    可以用VARIANT等类型作为参数
    然后再处理的时候,转换成BSTR,CComBSTR等
      

  2.   

    CComBSTR ,_bstr_t一把都是包装类等,一般都重载了转换符等来方便你转换
      

  3.   

    参数只能用BSTR ,不能用CComBSTR ,因为其它的程序语言vb,js,delphi,c# et...是没有CComBSTR 的,但都可以识别BSTR.CComBSTR 只不过是ATL 的一个类,而已
      

  4.   

    函数参数用BSTR,客户端用_bstr_t