BSTR bstrText = ::SysAllocString(L"Test");
  char* lpszText2 = _com_util::ConvertBSTRToString(bstrText);
 SysFreeString(bstrText);
 delete[] lpszText2;为什么这段代码,放到控制程序下就没有问题,在接口函数中就抛出异常.

解决方案 »

  1.   

    楼主是否搞错?
    我将楼主的代码试过,不管是控制程序还是在接口的实现函数中,都没发生问题,如果_com_util::ConvertBSTRToString抛出异常,请调试确认bstrText的有效性,可能是分配失败。
      

  2.   

    不需要,我就是在Console的工程中进行测试的
      

  3.   

    可能需要加一个USE_CONVERCTION宏吧,我这里没有MSDN,你自己查一下
    控制台下可以这样转换
    #include <comdef.h>
    _bstr_t str1=bstrText;
    char *str2=str1;