Конвертировать BSTR в char * - PullRequest
       36

Конвертировать BSTR в char *

14 голосов
/ 06 сентября 2010

Кто-нибудь знает, как конвертировать BSTR в char *?

Обновление: я пытался сделать это, но не знаю, правильно это или неправильно.

1 Ответ

18 голосов
/ 06 сентября 2010

Ваш код в порядке.ConvertBSTRToString делает именно это.Что касается strcpy, testDest должен быть достаточно большим, чтобы удерживать строку, на которую указывает p.Обратите внимание, что поскольку ConvertBSTRToString выделяет новую строку, вам нужно будет освободить ее где-нибудь вниз по строке.Когда вы закончите, убедитесь, что вы сделали:

delete[] p; 

Несколько предостережений (как вы можете видеть из BSTR документации по MSDN ):

  • В Microsoft Windows состоит из строки символов Unicode (широких или двухбайтовых символов).
  • Может содержать несколько встроенных нулевых символов.

Таким образом, ваш strcpy может не работать не всегда так, как ожидалось.

...