Numbering of the entries in the STRINGTABLE of an .exe

29 Views Asked by At

In Delphi, the entries in the STRINGTABLE resource in the .exe file are created automatically. The numbering (resource-id) of the entries is managed by Delphi itself, and this cannot be changed.

Is there a possibility to influence this numbering in Delphi, so that it is changed in the STRINGTABLE of the .exe? This could be e.g. a compiler setting.

The question has the following background:

  • we use Sisulizer for translating our Delphi applications, and this has worked fine for years.

  • Sisulizer accesses this STRINGTABLE in the translation process, and changes the value with the text of the corresponding language. As key, this number is used (simplified).

  • for reasons unknown to me, Delphi changed this numbering in the .exe, and now Sisulizer puts the wrong texts into the STRINGTABLE, and the translated application contains completely wrong texts and is therefore unusable.

We have changed neither the Delphi version nor the Sisulizer version, and this problem happened out of the blue.

Environment:

  • Delphi 10.3
  • Sisulizer 4.0 (Build 374)
  • Windows 10

I have been using older codestands and have always encountered the same problem with the numbering changing after compiling. The numbers in the .exe no longer match the numbers in the Sisulizer project.

Sisulizer project and STRINGTABLE of exe

The image shows the part in Sisulizer and the part of the STRINGTABLE that has different texts. The corresponding text in German is now at position 3870.61907.

0

There are 0 best solutions below