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

标签 c++ windows

我一直找不到关于此功能的任何合适的文档。我正在使用的代码库使用 winuser.h 中名为 LoadStringW 的函数,该函数采用以下参数:(HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int cchBufferMax).

这是什么功能?它是做什么用的?什么时候可能返回 0?

最佳答案

可能值得一提的是,几乎所有处理字符串的 Win32 API 都有一个“A”和一个“W”变体。

实际调用的变体由不以“A”或“W”结尾的宏定义决定 - 这些宏名称通常是您认为的 API 函数名称 (LoadString() 在这种情况下)。 UNICODE 构建将使用“W”名称,非 UNICODE 构建将使用“A”名称。

有时您可能想要调用 API 的 Unicode 版本,即使构建不是 Unicode,在这种情况下,您只需直接使用在末尾附加“W”的名称(这种情况较少见)需要在 Unicode 构建中调用非 Unicode API,但这是可能的)。由于 Windows 的非 Unicode 版本已经过时,Microsoft 开始越来越多地只实现 API 的 Unicode 版本。请注意,在几乎所有情况下,API 的非 Unicode 版本所做的只是将 ANSI/MBCS 字符串转换为 Unicode,调用“W”函数,然后进行清理。

关于c++ - LoadStringW - winuser.h。它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1651737/

相关文章:

c++ - 如何在 Qt 中安装自定义小部件?

c++ - 在 C++ 程序中包含 C 头文件

c++ - 如何在类初始值设定项中声明指向成员函数的指针并通过这些指针进行调用?

windows - 在哪里可以找到所有窗口类名称的列表?

ruby-on-rails - 在 'require' : no such file to load -- spec_helper

windows - Windows内部知识?

c++ - 理解继承的嵌套类模板的偏特化

windows - 如何从命令提示符终止进程及其父进程

java - 设置 Maven 的问题

c++ - Qt - 带有图形 View 框架的拖放