Есть ли проблемы с использованием SysAllocString с литералами? - PullRequest
0 голосов
/ 27 июля 2011

У меня есть следующий код

  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
  }

Это хорошо работает для отладки, но я получаю повреждения памяти в выпуске. На самом деле, я получаю плохой указатель, когда нахожусь в PrintWstring, а _aWstring содержит мусор. Я предполагаю, что SysAllocString не очень хорошо ладит с литералами. Есть идеи?

1 Ответ

2 голосов
/ 27 июля 2011

Нет ничего плохого в том, чтобы передать литерал в SysAllocString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...