![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
В чём отличие между WCHAR и BSTR ?
-------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
Orlan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
WCHAR * - указатель на юникодовскую строку
BSTR - то же самое, но это васиковская строка (Visual Basic), т.е. перед ней записано количество символов в строке. При передаче через компоненты лучше преобразовывать первое во второе при помощи ::SysAllocateString (или через враперы вроде _bstr_t или CComBSTR) Кажись так. Это сообщение отредактировал(а) Orlan - 29.8.2005, 16:12 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
BSTR используется в основном для COM интерфейсов, чтобы интерпретироваться по-своему в различных языках программирования.В C++ определен как указатель на массив элементов wchar_t.
WCHAR просто более короткий макрос от wchar_t, то есть один символ. Вообще я думаю ты имел в виду WSTR, тот же макрос только определен также как BSTR. Кстати BSTR определяется через LPWSTR. |
|||
|
||||
pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
А можно ли как нить сконвертировать char * в BSTR ?
-------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
Да можно.
mbtowc из stdlib.h и болле мощная MultiByteToWideChar функция WinAPI |
|||
|
||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
Вот так будет корректно:
Не забывай уничтожить созданый здесь BSTR --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
Ну это наверное только если ATL использовать...
|
|||
|
||||
Orlan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
Нет, USES_CONVERSION и A2CW есть как в MFC так и в ATL
::SysAllocString - функция из системных библиотек Это сообщение отредактировал(а) Orlan - 30.8.2005, 10:08 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |