各位,我用vc写的组件.
如下面的接口函数:
aa(CHAR* a,CHAR*b);
在vb下如何声明此类型参数.
string好像不可以?
谢谢..

解决方案 »

  1.   

    最好用BSTR,并且接口声明的时候标明是[in],[out]还是[out,retval]
    char*的不符合vc的com标准,所以VB里不认
      

  2.   


    STDMETHODIMP CAVLink::setstatuswords(BSTR m_status, LONG m_starbit, LONG m_endbit)//设置状态定义字,存放到链表里
    {
    ::SysAllocString(m_status);
    }
    客户端怎么调用?
    还有行参可以这样分配吗?
      

  3.   

    还有为什么我同时调2个参数类型是BSTR的函数就会中断.
    -》我没遇到过,建议先查查接口声明客户端怎么调用?
    还有行参可以这样分配吗?
    ——》就用string就可以
      

  4.   

    _stdcall aa(CHAR* a,CHAR*b);用string可以。另外,别忘了定义exports函数名。
      

  5.   

    char* com=_com_util::ConvertBSTRToString(m_serverip);
     
    char* con=_com_util::ConvertBSTRToString(m_serverport)
    会抛出异常.
    我在vc下.同时调还有为什么我同时调2个参数类型是BSTR的函数就会中断.
    主要是断在fstream infile;这句
    rushing(勇敢的心) 你说的那样可以吗?我是用ATL写的,好像不可以.
    还有exports是什么意思.是[in][out]...吗?
      

  6.   

    rushing(勇敢的心)可以给几行vb的例码吗?
      

  7.   

    关注,我也用VC写了个COM,想在VB中用。
    既然是个库,可否在VB中引用它,想ADO一样,我还没试用。
      

  8.   

    这个问题我基本解决了.CHAR*-BSTR.数组-SAFEARRAY.其应该没有什么了.