Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
paz
-
- Новичок
-
-
- Сообщения: 27
- Зарегистрирован: 04.02.2005 (Пт) 7:44
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
-
-
- Сообщения: 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-бот, Majestic-12 [Bot], Yandex-бот и гости: 152