使用SysAllocString和文字有什么问题吗?

时间:2011-07-27 07:50:04

标签: c++ windows

我有以下代码

  void Test()
  {
    BSTR aBstr = ::SysAllocString(L"blah");
    PrintBSTR(aBstr);
    ::SysFreeString(aBstr);
  }

  void PrintBSTR(BSTR _aBstr)
  {
    PrintWstring(_aBstr);
  }

  void PrintWstring(std::wstring _aWstring)
  {
    std::wcout << _aWstring << std::endl
  }

它适用于Debug,但我在Release中遇到内存损坏。实际上,当我进入PrintWstring时,我得到一个坏指针,而_aWstring包含垃圾。我猜测SysAllocString与文字的关系并不好。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

将文字传递给SysAllocString没有错。