|
|
|
файл ресурсов с разными языками
|
|||
|---|---|---|---|
|
#18+
Как можно получить картинку (иконку курсор) по языку и по номеру из файла ресурса если каждая картинка имеет один и тот же номер и разный индентификатор языка в стандарте можно взять только язык по умолчанию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 12:40 |
|
||
|
файл ресурсов с разными языками
|
|||
|---|---|---|---|
|
#18+
нашёл загрузку всех текстовых ресурсов в массив по языкам а можно что нибудь подобное для картинок 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 16:16 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2165428]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
197ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 475ms |

| 0 / 0 |
