Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#11

Re: Alle resourcestrings der aktuellen Exe auflisten

  Alt 17. Jul 2007, 01:00
Oh dann wäre der Source in System.pas wohl auch falsch. Nein ist nicht so.
Oben schrieb ich das in der Initialization Sektion einer Unit für alle ResourcenStrings eienr Unit deren PResStringRec per LoadResString() initialisiert werden. Der Borland RTL Code verändert also schon beim Laden der Unit diesen Record.

Das ist ja auch das was es zum Problem macht. Man muß quasi den Code in Unit System.pas + SysInit.pas patchen, so das wir noch vor dem Aufruf der Initialization Funktion einer Unit die noch nicht modifizierten PResStringRecs auslesen können.

Die einfachste Lösung ist es die fuck Fehlernummer in den String selber zu packen. Vor der Anzeige dieses Strings wird er entfernt. Und der Russisch Übersetzer bekommt den Hinweis daran nichts zu übersetzen. Um das automatisiert zu machen, benutzt du die *.DRC Dateien indem du extern mit'ner kleinen Software parst. Bei diesem Vorgang setzt du die ResourceID zum String als Nummer in den String selber, in der *.PAS Datei natürlich. Das wäre dann ein sauber nachvolziehbarer Weg ohne Tricks.

Der schmutzige Weg bedeutet
1.) per Tricks den Start der PResStringRec Tabelle der Unit rausbekommen, das habe ich schon mal
2.) nun bevor die Unit beim Programstart/Laden des Modules (DLL, Package) die Initialization Sektion aufgerufen bekommt, erfolgt durch Code in System/SysInit, die PResStringRecs auszulesen. Dazu muß der InitCode aus System.pas gepatcht werden, heist zur Laufzeit verändern wir den Code der Unit System. Das ist ein sehr schlechtes Vorgehen.

Gruß Hagen
  Mit Zitat antworten Zitat