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

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как корректно перевести тип BSTR в CString и наоборот?=== # Для конвертирования BSTR в CString нужно просто присв...)
 
 
Строка 1: Строка 1:
 
===Как корректно перевести тип BSTR в CString и наоборот?===
 
===Как корректно перевести тип BSTR в CString и наоборот?===
  
# Для конвертирования BSTR в CString нужно просто присвоить переменной типа CString переменную типа BSTR. Оператор "=" класса CString сам выполнит всю работу.
+
* Для конвертирования BSTR в CString нужно просто присвоить переменной типа CString переменную типа BSTR. Оператор "=" класса CString сам выполнит всю работу.
# Для конвертирования BSTR в CString нужно выполнить код:
+
* Для конвертирования BSTR в CString нужно выполнить код:
  
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">

Текущая версия на 15:24, 3 октября 2009

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

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