hi, im using one of the latest GCC and it surprise me WM_UNICHAR is not defined.
im using WIN32_LEAN_AND_MEAN but i do not think it has anything todo with that, since i coulndt find the definition of WM_UNICHAR anywhere in the winuser.h
can anyone help me ?
Last edited by cj-wijtmans; January 12th, 2009 at 09:52 AM.
also is there no way to use unicode WM_CHAR on lower systems than XP?
You may have pre-XP header files. The usual thing to do in this case is to download the latest SDK from Microsoft.
I don't know enough about WM_UNICHAR to speak authoritatively, but based on the documentation I would guess that the message is simply not implemented in pre-XP operating systems.
Sorry, UNICODE_NOCHAR is a bit of a mystery to me. There's only one reference to it on MSDN (in a blog post) and I don't have time to sort through the Google results.
I don't know what to tell you. I have Windows Server 2003 R2 SDK and it's defined in winuser.h just like I showed above. Do you know which SDK you are using?
As I said, I know nothing of gcc, but if it can create Windows applications then I would assume that it can use Microsoft's headers. And I can tell you that if gcc supplies Windows headers then they must originate with Microsoft. They are redistributable after all. Of course, gcc could modify them for its own purposes but I'm not sure that would pass a license test.
Why are you positive that your headers are post-XP? It sound to me like they aren't. Just because you acquire something after XP has been released doesn't mean that it is XP compatible. gcc could be supplying very old headers.
Another thing to consider is that maybe in your case you could just define WM_UNICHAR yourself as show above (0x109). You must realize that the definition in the header is only for the benefit of your program. Any post-XP operating system will send the WM_UNICHAR message regardless of whether your program knows about it. If that message is the only thing you are missing then just define it and see what happens.
There's always the chance that the number I provided will be incompatible in the future, but I've never seen any indication that once a Windows message has been defined that it ever gets changed.
You may still want to consider my advice about defining WM_UNICHAR yourself, but I know that many here also use gcc. Does anyone else have an idea of what is happening? Why don't the gcc headers define this message?
Bookmarks