今天这个问题困扰了我好久,其实对于一个初学者来说,不必专研的太深,大致理解如下就可以了:
窄字符就是用一个字节表示一个字符,宽字符就是用≥2个字节表示一个字符。
比如(以Windows下小端存储为例)
char c=’A’;//内存中对应字节41
wchar_t wc=L’A’;//内存中对应字节41 00
char cs[]=”AB”;//内存中对应字节41 42 00
wchar_t ws[]=L”AB”;//内存中对应字节41 00 42 00 00 00
Windows中所有的底层函数都是Unicode编码
GetWindowTextW(
_In_ HWND hWnd,
_Out_writes_(nMaxCount) LPWSTR lpString,
_In_ int nMaxCount);
#ifdef UNICODE
#define GetWindowText GetWindowTextW
该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。但是,GetWindowText不能接收其他应用程序中控件的文本。 函数原型:
Int GetWindowText(HWND hWnd,LPTSTR lpString IntnMaxCount);
。。。。。。。。。。。。。。。。。。。。。。。。
hWnd:带文本的窗口或控件的句柄。
IpString:指向接收文本的 缓冲区的 指针。
nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。