Question about resource files and VB...
I attempted to add a non-US unicode name (i.e, Chinese, Russian, etc) to a resource bitmap. For example, instead of 101 for the bitmap resource name, used: Добро пожаловать
The resource file was valid, though VB couldn't display it properly. I then compiled a test app with that resource & VB did so without errors, but changed the bitmap's res name to all ? characters when viewed in NotePad/WordPad. From what I've read is that MultiByteToWideChar calls are performed on those strings during compilation, which would explain what I'm seeing. If you are curious, I was able to do this by manually creating the resource file.
So, out of curiosity, for those that typically work in non-US locale while using VB, could answer a couple questions?
1) Does VB even let you use non-US character set when renaming a res file item?
2) If above question's answer is yes, then could you be so kind as to add a simple bitmap to a new res file, rename the bitmap from 101 to non-US characters and upload it here? I'd like to review it. I know I could probably do this by changing my system's regional settings, but fear it could be a flawed test if I did something incorrectly.
Note: I am not talking about string tables
Additional question for those far more knowledgeable than I. For US-locales, I noticed that VB forces upper case res item names when using string vs. integer names. I was able to use mixed case res names and both VB and APIs had no problems. Is this documented somewhere?
Edited: Mixed case is not applicable. After reviewing a compiled exe, in NotePad, with a res name using mixed case, the name was changed to all upper case. I think that whatever VB uses to compile resource files (rc.exe? something else?) into an app is doing these conversions. The conversions are only applicable to the app, not the original res file which still contains the mixed case & unicode names I'm playing with.
Regarding the unicode name I tried, VB actually loaded (and displayed the bitmap) from the res item fine, but APIs reported "resource not found" error when passing it the name I used. Thinking VB did a MultiByteToWideChar conversion which located the resource item, while passing the string pointer directly to APIs no conversion performed and APIs couldn't find it, because the name was converted to all ? characters when I compiled the app.