请问tlb文件是怎么样生成的
在atl的框架下是可以生成的
但是在只使用C++的请况下
就是使用vc6的向导中,设置建立win32 dll的程序
这样的com组建中为什么没有tlb文件另外问一个问题在向一个接口的函数中传入一个字符串的时候
该怎么样写这个函数
比如
class IClass{
public:
  
put_str();//这里是char*的时候,在客户端调用的时候就会出现错误,这是为什么}使用LPTSTR也不行啊

解决方案 »

  1.   

    *.tlb文件是由*.idl通过MIDL编译器生成的,你没有写IDL文件自然没有TLB文件了:)
      

  2.   

    字符串用BSTR这是COM的标准,建议楼主看看DON BOX的 COM本质论 里面有详细的
    论述如何在COM中使用字符串
      

  3.   

    STDMETHODIMP 
    ComFusion::XCInnerSS::Function(BSTR* str)
    {
    METHOD_PROLOGUE(ComFusion, CInnerSensor)
    USES_CONVERSION;
    g_strTemp=W2A(*str);//g_strTemp是CString类型的
    return NOERROR;
    }
    客户端调用
    BSTR             bstr;
    USES_CONVERSION;
    bstr=A2W(g_strTemp);
    g_pISS->Function(&bstr);//g_strTemp是CString类型的