gpt4 book ai didi

c++ - 正确使用 Windows 控制台 API 的 CHAR_INFO 结构

转载 作者:可可西里 更新时间:2023-11-01 11:48:04 28 4
gpt4 key购买 nike

控制台函数的Windows API部分wincon.h定义了一个数据结构CHAR_INFO如下:

typedef struct _CHAR_INFO {
union {
WCHAR UnicodeChar;
CHAR AsciiChar;
} Char;
WORD Attributes;
} CHAR_INFO, *PCHAR_INFO;

所以我们有一个 8 位和 16 位字符的并集,分别表示 ASCII 和 Unicode 字符。通常,如果你必须处理 C 中的 union ,你会标记 union ,即存在一个额外的字段,指示正在使用 union 的哪个字段。这里不是这种情况(Attributes 用于不同的东西),所以我想知道如何正确使用这种数据类型的值。

如果我们查看 API 的哪些函数实际上使用了这个或类似的结构,我们发现它只被存在于两个变体中的函数使用:要么以 A 为后缀(对于 ASCII 变体),或以 W 为后缀(对于 Unicode 变体)。

那么是否可以假设这些函数的 A 变体将仅使用此结构的 AsciiChar 字段,而 W只有 UnicodeChar 字段的变体?如果不是,您如何知道实际使用的是哪个字段以及如何将一个字段转换为另一个字段? MSDN documentation这里似乎没有说明正确的用法。

最佳答案

So is it save to assume that the A variants of these functions will only use the AsciiChar field of this structure, and the W variants only the UnicodeChar field?

是的。

关于c++ - 正确使用 Windows 控制台 API 的 CHAR_INFO 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974125/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com