FAQ:WinAPI VCPP:перевод между BSTR и CString — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как корректно перевести тип BSTR в CString и наоборот?=== # Для конвертирования BSTR в CString нужно просто присв...)
(нет различий)

Версия 15:23, 3 октября 2009

Как корректно перевести тип BSTR в CString и наоборот?

  1. Для конвертирования BSTR в CString нужно просто присвоить переменной типа CString переменную типа BSTR. Оператор "=" класса CString сам выполнит всю работу.
  2. Для конвертирования BSTR в CString нужно выполнить код:
// указатель на будущий буфер с BSTR.
// По сути, BSTR определён как typedef WCHAR* BSTR;
// то есть - указатель на 16-битный символ юникод.
BSTR bstrHE = 0;
 
// строка для конвертации
CString Str = "мой текст";
 
// Выделяем память и загружаем адрес блока в bstrHE
bstrHE = Str.AllocSysString();
 
// ...	
// тут работаем с bstrHE[]
// ...
 
// освобождаем память
SysFreeString(bstrHE);