![]() |
Wie bekommt man ResourceString ID wenn man den String hat?
Hallo,
ich habe folgendes Problem. Ich nutze Multilizer 6, welches direkt und sofort alle Resourcestrings übersetzt, damit bin ich jetzt auch sehr zufrieden. Das geht mit dem Tool sehr gut. Jetzt habe ich aber das Problem, dass ich diese Strings ja auch für Loggingzwecke verwende und ich für diesen Fall natürlich keine Übersetzung wünsche. Nachdem die Strings in entsprechenden resource "DLL"s gespeichert werden, müßte ich "nur" wissen, welche ID diesem String zugewisen wurde um den entsprechenden String dann in der Englischen DLL zu finden. Soll ungefähr so gehen...
Delphi-Quellcode:
function getEnglischString(const ATranslatedString: integer): string;
const CEnglishDLL = 'C:\d7\Local.App\ML6\DummyProject.EN'; var lResRec: PResStringRec; lDLLHandle: Cardinal; lIdentifier: integer; begin Result := ''; lResRec := new(PResStringRec); try lDLLHandle := LoadLibraryEx(PChar(CEnglishDLL), 0, LOAD_LIBRARY_AS_DATAFILE); if lDLLHandle <> INVALID_HANDLE_VALUE then begin lIdentifier := getResourceIDFromString(ATranslatedString); //die Funktion ist gesucht... lResRec^.Module := @lDLLHandle; lResRec^.Identifier := lIdentifier; Result := LoadResString(lResRec); end; finally dispose(lResRec); end; end; |
Re: Wie bekommt man ResourceString ID wenn man den String ha
Schau dir mal
![]() |
Re: Wie bekommt man ResourceString ID wenn man den String ha
Es geht auch anders.
Es ist wichtig, dass man wirklich die Adresse des Resourcestrings übergibt,
Delphi-Quellcode:
function getIdentifier(AP: Pointer): integer;
begin Result := PResStringRec(AP).Identifier; end;
Delphi-Quellcode:
...
resourcestring sMessage1 = 'Message1'; var _Identifier: integer; _Identifier := getIdentifier(@sMessage1); ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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