关于 WM_GETTEXT 与 WM_SETTEXT 的一些小问题
一直搞c++,也没怎么注意 unicode 这个问题,因为工程默认新建的时候都是 unicode 编码的
但现在在搞一个库,要考虑到开发者的环境有可能不是 unicode 的
那么为了达到通用肯定要用两个以上的版本了
但我发现 windows 的消息里,wm_gettext 和 wm_settext 是没有区分 unicode 和 ansi 的
那么这个消息是怎么区分 lparam 里的参数究竟是 char 还是 wchar_t???
网上(包括msdn)都说只要传递 TCHAR 类型,系统会自动识别
这个我明白,因为 TCHAR 宏会根据定义自己切换成 char 或 wchar_t
但我认为那是在自己的程序里才有用的啊
WM_GETTEXT 和 WM_SETTEXT 这俩消息已经封装在一个 dll 里了啊
既然已经封装好了就不可能再给你重新编译的啊?
其实主要的问题还是问系统 dll 里是怎么知道这个 lparam 参数是宽字符还是多字节字符?