Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Конвертнуть BSTR без atl (https://forum.antichat.xyz/showthread.php?t=127374)

_nic 28.06.2009 20:45

Конвертнуть BSTR без atl
 
Как это сделать(экспресс версия студии).Всякие манипуляции типа _com_util::ConvertBSTRToString(myBSTR);или (_bstr_t) bstrString приводят к вылетам :(

Gar|k 29.06.2009 01:36

Цитата:

В С++ строка это массив символов который заканчивается нулем. К сожалению это не везде так. Например, в PASCAL по другому. Но COM объекты должны быть универсальные и получать и передавать сроки из любых сред разработки. Именно по этому COM реализует свой тип срок который называется базовым - BSTR.
typedef OLECHAR * BSTR;

Эта строка содержит символы UNICODE с префиксом из четырех байт в котором содержится длина.


BSTR str;
TCHAR *uSTR;

// хм если строка содержит в начале 4 байта то
uSTR=&str[4];

если в конце можно как нить так....
TCHAR uSTR[10];

memcpy(&uSTR[0],&bSTR[0],sizeof(bSTR)-4);


Время: 06:01