Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Tauron
-
- Продвинутый пользователь
-
-
- Сообщения: 187
- Зарегистрирован: 14.07.2002 (Вс) 17:43
- Откуда: Kazakhstan
-
Tauron » 20.05.2003 (Вт) 18:52
В общем: кто работал с сабжем? А то у меня чего-то не получается. Пример из Api-Guide не предлагать. Там из апишная функция изначально возвращает указатель на строку в виде переменной типа Long, а тут такая фишка не пройдет - я строки из файла читаю.
Трезвая голова, холодный ум и ледяное сердце.
-
Rainbow
-
- Человек-радуга
-
-
- Сообщения: 543
- Зарегистрирован: 13.05.2003 (Вт) 14:16
Rainbow » 21.05.2003 (Ср) 11:12
Не знаю, поможет ли это, но...
Есть недокументированная функция StrPtr, которая возвращает адрес массива символов строки.
- Код: Выделить всё
Private Declare Function GetACP Lib "kernel32" () As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, lpUsedDefaultChar As Long) As Long
Public Function WToA(ByVal st As String, Optional ByVal cpg As Long = -1, Optional lFlags As Long = 0) As String
Dim stBuffer As String
Dim cwch As Long
Dim pwz As Long
Dim pwzBuffer As Long
If cpg = -1 Then cpg = GetACP()
pwz = StrPtr(st)
'получаем нужную длину буфера
cwch = WideCharToMultiByte(cpg, lFlags, pwz, -1, 0&, 0&, ByVal 0&, ByVal 0&)
stBuffer = String$(cwch + 1, vbNullChar)
pwzBuffer = StrPtr(stBuffer)
cwch = WideCharToMultiByte(cpg, lFlags, pwz, -1, pwzBuffer, Len(stBuffer), ByVal 0&, ByVal 0&)
WToA = Left$(stBuffer, cwch - 1)
End Function
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 81