Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / файл ресурсов с разными языками / 3 сообщений из 3, страница 1 из 1
09.08.2006, 12:40
    #33907672
miki1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл ресурсов с разными языками
Как можно получить картинку (иконку курсор) по языку и по номеру
из файла ресурса если каждая картинка имеет один и тот же номер
и разный индентификатор языка
в стандарте можно взять только язык по умолчанию
...
Рейтинг: 0 / 0
09.08.2006, 16:16
    #33908558
miki1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл ресурсов с разными языками
нашёл загрузку всех текстовых ресурсов в массив по языкам
а можно что нибудь подобное для картинок


Public Const DIFFERENCE = 11
Public Enum resType 'Types of resources
RT_FIRST = 1&
RT_CURSOR = 1&
RT_BITMAP = 2&
RT_ICON = 3&
RT_MENU = 4&
RT_DIALOG = 5&
RT_STRING = 6&
RT_FONTDIR = 7&
RT_FONT = 8&
RT_ACCELERATOR = 9&
RT_RCDATA = 10&
RT_MESSAGETABLE = (11)
RT_GROUP_CURSOR = (RT_CURSOR + DIFFERENCE)
RT_GROUP_ICON = (RT_ICON + DIFFERENCE)
RT_VERSION = (16)
RT_DLGINCLUDE = (17)
RT_PLUGPLAY = (19)
RT_VXD = (20)
RT_ANICURSOR = (21)
RT_ANIICON = (22)
RT_HTML = (23)
RT_LAST = (16)
End Enum

Public Type StringResource
ResID As Long
ResText As String
End Type


Public Type TResource
ResString() As StringResource
LangId As Long
End Type

Public ArrStrings() As TResource
Public iC As Long



Public Function LoadAllStringResources(strFileName As String, LangId As Long) As StringResource()
Dim ret As Long
Dim hResource As Long
Dim X As Long
Dim iGroup As Integer
Dim hObject As Long
Dim hResourceData As Long
Dim lpResourceData As Long
Dim cbResource As Long
'Dim hModule As Long
Dim lpData() As Byte
Dim lpReadData() As Byte
Dim Out() As StringResource
Dim countX As Long
Dim CHECKLNG As Integer
Dim temp As String

ReDim Out(0)
hModule = LoadLibrary(strFileName)
For iGroup = 1 To 4096
hObject = FindResourceEx(hModule, RT_STRING, iGroup, LangId) 'strings
hResourceData = LoadResource(hModule, hObject)
lpResourceData = LockResource(hResourceData)
cbResource = SizeofResource(hModule, hObject)
If cbResource >= 31 And hObject <> 0 Then
ReDim lpReadData(cbResource - 1)
CopyMemory lpReadData(0), ByVal lpResourceData, cbResource

countX = 0
X = 0
Do While countX < UBound(lpReadData)
CopyMemory CHECKLNG, lpReadData(countX), 2&
countX = countX + 2
If CHECKLNG Then
ReDim Preserve Out(UBound(Out) + 1)
Out(UBound(Out)).ResID = (iGroup - 1) * 16& + X
temp = Space(CHECKLNG * 2)
CopyMemory ByVal StrPtr(temp), lpReadData(countX), CHECKLNG * 2
Out(UBound(Out)).ResText = Trim(temp)
countX = countX + CHECKLNG * 2
End If
X = X + 1
Loop
End If
Next
FreeLibrary hModule
LoadAllStringResources = Out
End Function


Form_Load()
dim b() as StringResource

iC = iC + 1
b = LoadAllStringResources("c:\file.dll", 1049) 'Russian

ReDim Preserve ArrStrings(iC)
ArrStrings(iC).ResString = b
ArrStrings(iC).LangId = lpszID
end sub
...
Рейтинг: 0 / 0
18.08.2006, 11:49
    #33927368
miki1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл ресурсов с разными языками
Нашёл через дополнительный тип в ресурсах
можно организовать перебор ресурсов по языкам

Всем спасибо
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / файл ресурсов с разными языками / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]