Ваш код в порядке.ConvertBSTRToString
делает именно это.Что касается strcpy
, testDest
должен быть достаточно большим, чтобы удерживать строку, на которую указывает p
.Обратите внимание, что поскольку ConvertBSTRToString выделяет новую строку, вам нужно будет освободить ее где-нибудь вниз по строке.Когда вы закончите, убедитесь, что вы сделали:
delete[] p;
Несколько предостережений (как вы можете видеть из BSTR
документации по MSDN ):
- В Microsoft Windows состоит из строки символов Unicode (широких или двухбайтовых символов).
- Может содержать несколько встроенных нулевых символов.
Таким образом, ваш strcpy
может не работать не всегда так, как ожидалось.