不是说你在 UNICODE 环境下 写源程序,而是指你的程序要去 处理 UNICODE 文件和 字符串。
无论怎样,C/C++ 源程序 要用 ASCII 来写,不能写成 UNICODE。如果你的编译器 和 系统 支持 UNICODE, 程序里的 字符串 也许可以写成 UNICODE。
如果 你 的 C/C++ 源程序,要用于 读写 UNICODE 文件,你的程序 开始加 宏:
#define _UNICODE
char 类型 用 TCHAR 类型
字符转换 用到 _T 或 _TEXT
( 还有一些 其它 注意事项,你要看一下帮助文件)
有了 #define UNICODE 编译器知道如何处理 MessageBox ()
多字节 改用 宏
#define _MBCS
就可以了。
ingW 不要用所谓兼容模式,很容易给自己造成不必要的麻烦。
获得char *比较简单一点的方法是,用CStringW构造一个CStringA对象,再转换成char *。或者自己调用WideCharToMultiByte
至于工作不正常的问题,你目前的描述无法确定原因。