Anyone got this to work? When I add a new string using the string table editor and then save my .rc file and resource.h files do not contain the new string. In fact if you add a new string, click ok and then open the string editor again it has already lost what you entered. I've raised a support request with IDM but wondered if perhaps I'm doing something wrong.
You are right. I see the same problem.
The ID of the new string (IDS_) is added to resource.h, but within the block enclosed by #ifdef APSTUDIO_INVOKED and matching #endif which is definitely not right. The ID of the new string should be appended a few lines above below last line with an IDS_ definition. Also value of _APS_NEXT_COMMAND_VALUE was increased by 1 which should not be done when adding a resource string.
But the main problem is that the new string was not added to the *.rc file at all.
Most likely not adding the new string is caused by the fact that the C++ project on which I added the new string uses multiple resources files imported from a Visual C/C++ 6.0 project with lots of manual and not alwas right made hacks in the *.rc and resource.h files. I have not yet fixed all the mistakes made by the previous developers in the resource files of this project. Even Visual Studio 6 resource editor has some troubles on updating a resource. I really must spend some time in the future to fix all the resources of the project.
I created next a complete new C++ project in UEStudio with a completely new project.rc and resource.h. Adding a string to the string table worked. The string was saved by UEStudio into project.rc and the ID was added to resource.h.
But again the value of the ID was taken from current value of _APS_NEXT_COMMAND_VALUE, value of _APS_NEXT_COMMAND_VALUE was increased by one, and the IDS_ definition was added within #ifdef APSTUDIO_INVOKED and matching #endif.
That is definitely not correct according to TN020: ID Naming and Numbering Conventions (identical article for all Visual Studio versions) and I will report those issues to IDM support.
The ID of the new string (IDS_) is added to resource.h, but within the block enclosed by #ifdef APSTUDIO_INVOKED and matching #endif which is definitely not right. The ID of the new string should be appended a few lines above below last line with an IDS_ definition. Also value of _APS_NEXT_COMMAND_VALUE was increased by 1 which should not be done when adding a resource string.
But the main problem is that the new string was not added to the *.rc file at all.
Most likely not adding the new string is caused by the fact that the C++ project on which I added the new string uses multiple resources files imported from a Visual C/C++ 6.0 project with lots of manual and not alwas right made hacks in the *.rc and resource.h files. I have not yet fixed all the mistakes made by the previous developers in the resource files of this project. Even Visual Studio 6 resource editor has some troubles on updating a resource. I really must spend some time in the future to fix all the resources of the project.
I created next a complete new C++ project in UEStudio with a completely new project.rc and resource.h. Adding a string to the string table worked. The string was saved by UEStudio into project.rc and the ID was added to resource.h.
But again the value of the ID was taken from current value of _APS_NEXT_COMMAND_VALUE, value of _APS_NEXT_COMMAND_VALUE was increased by one, and the IDS_ definition was added within #ifdef APSTUDIO_INVOKED and matching #endif.
That is definitely not correct according to TN020: ID Naming and Numbering Conventions (identical article for all Visual Studio versions) and I will report those issues to IDM support.
- 481
Thanks mofi.
My original project also contains many separate .rc files.
My original project also contains many separate .rc files.