Einzelnen Beitrag anzeigen

Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#1

Wie bekommt man ResourceString ID wenn man den String hat?

  Alt 26. Aug 2004, 09:46
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;
Günter
  Mit Zitat antworten Zitat