I have been away. From what little I have seen you appear to be using VC++ 2005, which I do not have. Therefore I can not test if this would even compile on that version of the compiler. The example you provided should generate errors, no matter what character set you are using. You can not mix Unicode and Multi-byte strings in a single function call, the function takes one or the other type, but not both. The only way this could work is if the compiler converted one of the strings, which it should not be doing, or the library provided functions that take mixed string argument types, which I have never seen before. In both these cases, MS would be doing something it should not be doing. Sorry I could not be of more help, all I know for sure is that the ‘L’ prefix is not optional and must be used to tell the compiler to convert the string to Unicode. Good Luck!
INTP "Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra