createWindowex,createwindowexa,createwIndowexw?

问题描述 投票:0回答:1

我阅读了有关
CreateWindowEx
CreateWindowExA
的文档,它们似乎彼此相同。
如果没有区别,为什么它们都存在?

首先,
c++ winapi
1个回答
5
投票
是一个宏,它根据是否已定义了

CreateWindowEx

的扩展为
CreateWindowExA
CreateWindowExW
。许多Winapi功能都可以使用:它们具有一个宏,该宏在基于
UNICODE
的适当函数之间切换,然后具有
UNICODE
A
版本。
现在,与
W

A

版本的差异相当简单。

“ A”版本根据Windows代码页面处理文本,而“ W”版本处理Unicode文本。
-资料来源:

https://learn.microsoft.com/en-us/windows/win32/intl/code-pages

MicrosoftDocumentation

the hinuser.h Header将CreateWindowex定义为一个别名,它会根据Unicode预处理常数的定义自动选择此功能的ANSI或Unicode版本。将编码 - 中性别名与不编码中性的代码混合使用可能导致不匹配导致编译或运行时错误。有关更多信息,请参见函数原型审计。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.