преобразовать LPWSTR в BSTR

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
paz
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 04.02.2005 (Пт) 7:44

преобразовать LPWSTR в BSTR

Сообщение paz » 18.02.2005 (Пт) 7:20

Здравствуйте коллеги.

APIшная функция возвратила Variant. Тип переменной VT_LPWSTR(31). Бацик понимает только VT_BSTR(8).

Подскажите пожалуйста способ преобразования LPWSTR в BSTR. с помощью VariantChangeType не получается - выдает ошибку. :(

paz
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 04.02.2005 (Пт) 7:44

Сообщение paz » 18.02.2005 (Пт) 8:54

Ой. ниче не надо уже сам нашел :). Если кому надо то вот:

Код: Выделить всё
Function LPWSTRtoBSTR(ByVal lpwsz As Long) As String

' Input: a valid LPWSTR pointer lpwsz
' Return: a sBSTR with the same character array

Dim cChars As Long

' Get number of characters in lpwsz
cChars = lstrlenW(lpwsz)

' Initialize string
LPWSTRtoBSTR = String$(cChars, 0)

' Copy string
CopyMemory ByVal StrPtr(LPWSTRtoBSTR), ByVal lpwsz, cChars * 2

End Function

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.02.2005 (Пт) 12:45

В точности то же самое делает API-шка SysAllocString.
Изображение

paz
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 04.02.2005 (Пт) 7:44

Сообщение paz » 18.02.2005 (Пт) 12:58

Хорошо, учту.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 37

    TopList