LoadStringW - winuser.h.它有什么作用?

0 c++ windows

我一直无法找到关于此功能的任何体面的文档.我正在使用的代码库使用winuser.h中的一个函数调用LoadStringW它作为参数:(HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int cchBufferMax).

这个功能是什么?它是为了什么?什么时候可以返回0?

Mic*_*urr 6

值得一提的是,几乎所有处理字符串的Win32 API都有'A'和'W'变体.

实际调用的变量由不以"A"或"W"结尾的宏的定义决定 - 这些宏名称通常被认为是API函数的名称(LoadString()在本例中).UNICODE构建将使用'W'名称,而非UNICODE构建将使用'A'名称.

有时您可能想要调用Unicode版本的API,即使构建不是Unicode,在这种情况下,您只需直接使用带有'W'的名称到最后(不需要经常需要)在Unicode构建中调用非Unicode API,但它是尽可能的.由于Windows的非Unicode版本已经过时,因此Microsoft已经开始越来越多地仅实现Unicode版本的API.请注意,在几乎所有情况下,API的非Unicode版本所做的全部是将ANSI/MBCS字符串转换为Unicode,调用"W"函数,然后进行清理.