其实这个问题还是和编码类型有关,由于存在Unicode和ANSI两种编码类型,所以对于有关字符处理的API函数都分别定义了两个函数分别对应不同的编码方式:
- 对于GetWindowTextA()是用ANSI编码类型时使用的API函数,对于A结尾的函数都是用的ANSI编码
- GetWindowTextW()则是用Unicode编码类型时使用的API函数,对于W结尾的函数都是用的Unicode编码
而GetWindowText()则是一个宏,可以发现其在定义了UNICODE宏时,会被替换为GetWindowTextW(),否则为GetWindowTextA(),所以该宏是便于代码进行移植。
#ifdef UNICODE
#define GetWindowText GetWindowTextW
#else
#define GetWindowText GetWindowTextA
#endif