先声名哦,俺没用过VC,俺以前是用C++Builder的,最近因为工作关系,开始研究VC。
现有一个DLL模块,是用纯C在VC下编的,要在VB中调用,所以要用到BSTR和BYTE类型。
问题是这些类型和C内部类型之间怎么转化啊?
1.BSTR转化为BYTE;
2.BYTE转化为BSTR;
3.long转化为BSTR;
4.BSTR转化为long;

解决方案 »

  1.   

    大哥,用到也没必要这样转换吧?BSTR是字符串,BYTE是unsighed char呀?
      

  2.   

    BSTR是32位指针,BYTE是字符类型.那只能这样了:
    BYTE cTemp;
    BSTR A=&cTemp;
    or cTemp=*A;
      

  3.   

    // Example shows using MFC's 
    // CString::AllocSysString//...
    HRESULT CMyClass::get_StatusText( BSTR * pbstr )
    {
       try
       {
          //m_str is a CString in your class
          *pbstr = m_str.AllocSysString( );
       }
       catch (...)
       {
          return E_OUTOFMEMORY;
       }
    }
    转化到CString后,我想你应该知道怎么转化为BYTE了吧.
      

  4.   

    请注意:当实现返回 BSTR 的函数时,请分配字符串,但不要释放它。接收函数会释放内存。