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;