Skip to content

Still not able to get proper CodePage value for resources in a final exe/dll file #18

Description

@gh-Destiny

I decided to try to choose your product so that I can always confidently get multi-language final products in compiled resources compiled exe/dll files from Visual Studio 2019.
As I understood it - this is requiring that resources that use a text component always match the correct code page. And then these strings will always be displayed correctly on the screen / faithfully transmitted by client-server communication.

What was done: the resource file (*.rc file) was formatted and saved in UTF-8+BOM encoding, as the most common and adequate for use among any development teams/just regular people even for simple communication. As well as all other project files.
Knowing in advance that the resource compiler (rc.exe from Microsoft) is prone to problems when building multilingual projects (in particular from the information on your blog), the following was written at the beginning of the rc file:
#pragma code_page(65001)
The project was built, launched, and checked. Everything seems to work. But this is on our platform/comps/OS/....
We sent it to a person on the other side of the Earth, and nothing good came out of it. The text became unreadable.
Then we checked the status of the CodePage field of the IMAGE_RESOURCE_DATA_ENTRY structure from the well-known description
of the PE/COFF format and saw that zero 0x0000 (0) (ANSI - Default) was set for all resources compiled and stored in my EXE file.

Ok, so I tried to use YOU utility: resinator.exe /c 65001 /fo MyEXEtool.res ..\MyEXEtool.rc
It seems that the file I was looking for appeared on the disk and there were no errors when creating it.
Then I further linked this file with the object files of my project and received the final EXE.
It was definitely a new file. I ran it, checked it, and everything was fine. On my computer, OS, etc...
BUT a new check with the special utility showed that nothing has changed in terms of the value
of the CodePage field....
Questions:
Did I do something wrong? is your utility still unable to specify a value for this field?
is Microsoft's linker incompatible with the final res file obtained from your utility?
Or something else?

I can physically see that this is possible in principle, because I see different real files where this field is filled with a valid constant,
and not just a default zero. Here's the question - how to ensure that it always works like this/generates the final rc/res/obj/exe/dll/...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions