ローカライズされたリソースDLLを備えたDelphiアプリがあります。
DLLからロードされたら、リソース文字列を検索して置換したいと思います。
これを行うためにフックする内部手順はありますか?
特定のリソース文字列を変更するだけでなく、ロードされたリソース文字列を検索して置換する方法が必要です。
ラウル。
はい、System.pasで定義されているLoadResString()プロシージャをフックする必要があります。
たとえば、http://synopse.info/fossil/finfo?name = SQLite3/SQLite3i18n.pasでどのように行うかを参照してください。
このユニットコードにはすべてが含まれています。
同様のコードもありますが、これはオープンソースのmORMotフレームワークに含まれており、Delphi6からXE2まで機能します。同じ翻訳されたテキストファイルから、すべての.dfmコンテンツ(つまりフォーム)をその場で変更するコードもあります。http://mormot.netのフレームワークドキュメントにそれに関する章があります
タスクに必要なすべてのコードパターンがここに表示されると思います。