Что означает CCHAR в типах Windows? - PullRequest
0 голосов
/ 28 октября 2011
typedef struct _FILE_BOTH_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
ULONG FileAttributes;
ULONG FileNameLength;
ULONG EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
WCHAR FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;

FileNameLength объявлено ULONG.Я догадался, что это счетчик байтов, потому что все (или большинство) длин строк являются счетчиками байтов в ядре.
Вчера я написал неправильный код, потому что я неправильно понял, что это означает количество символов см CCHAR ShortNameLength.Теперь я знаю, что ShortNameLength требует подсчета байтов.
Тогда, что означает C в CCHAR?

1 Ответ

2 голосов
/ 29 октября 2011

C означает количество в венгерской нотации. Переменная с именем cch будет "числом символов", и вы ожидаете, что она будет содержать длину строки. Таким образом, CCHAR - это тип, который может содержать количество символов.

Это ужасное злоупотребление венгерской нотацией, типичное для команды Windows .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...