![]() |
EnumResourceLanguages + RT_STRING findet nichts
ich wollte die verfügbaren Sprachen (in meiner EXE) für einen ResourceString (String Table Entry) rausfinden, aber irgendwie wird nichts gefungen. :gruebel:
Delphi-Quellcode:
Ergebnis:
// Msg: Integer = ResourceID
EnumResourceLanguages(HInstance, RT_STRING, PChar(Msg), @EnumResLangProc, Integer(@LangIDs)); Zitat:
LoadString läd den String zwar, aber ich wollte die Sprache selbst auswählen und auf EnumResourceLanguages+FormatMessage umsteigen, mit ich selbst die sprache auswählen kann. ResID als String ging auch nicht ... was ist hier denn falsch? :? [add] ach ja, EnumResLangProc wird garnicht erst aufgerufen, also darin ist der Fehler nicht zu finden und bei anderen ResTypen funktioniert es ja |
Re: EnumResourceLanguages + RT_STRING findet nichts
Die Callback Funktion muss global deklariert werden, also nicht im Deklarationsteil der Funktion die EnumResource* aufruft. Hast du das so?
|
Re: EnumResourceLanguages + RT_STRING findet nichts
Ach sch***
mir isses grad wie Schuppen aus den Haaren gefallen :wall: die ResourceStrings werden ja in Gruppen in den Resourcen gespeichert. und zwar in 16er-Grüppchen muß also (Msg div 16) rechnen und mir dann den (Msg mod 16)-ten String aus dem Stringsalat rauskopieren :nerd:
Delphi-Quellcode:
EnumResourceLanguagesW(HInstance, PWideChar(RT_STRING),
PWideChar(Msg shr 4), @EnumResLangProcW, Integer(@LangIDs)); Also Problem gelöst: bei allen Resourcen kann man direkt über die ID zugreifen, außer bei RT_STRING's, wo man in 16er-Gruppen arbeiten muß. LoadString/FormatMessage nimmt auch die ID und zerlegt sich das intern selber. hab einfach zulange nichtmehr sowas gemacht und mich jetzt tagelang umsonst damit gequält :oops: und eigentlich kann ich noch froh sein, daß ich keine Komflikte in der Datei bekommen hab, weil die String-ID's jetzt in Wirklichkeit 16-mal kleiner sind |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz