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