Здесь есть несколько макросов, которые используются в основном по историческим причинам, а также тип и имя параметра.
BOOL WINAPI SetComputerName(
_In_ LPCTSTR lpComputerName
);
BOOL
используется для логических значений, поскольку в C не было стандартизованного до 1999 года типа bool, а Windows API старше этого, см. Почему Microsoft использует так много макросов в своем коде C ++?
WINAPI
используется для обозначения функций Windows API соглашением о вызовах, см. Что делает WINAPI в основная функция означает?. Обычно это не имеет значения для вас, только для вашего компилятора.
LPTCSTR
означает «длинный указатель на константную строку TCHAR». См. LPCSTR, LPCTSTR и LPTSTR. TCHAR
- еще один макрос, который представляет собой либо однобайтовый, либо широкий символ, в зависимости от параметров времени компиляции. На него нужно обратить внимание, так как это тип параметра.
_In_
отмечает параметр как вход для функции, а не указывает на хранилище для результата. Иногда это полезная документация, а также подсказка для анализа кода. См. Что такое _In_ в C ++?
lpComputerName
«lp» - это венгерская нотация Microsoft для «длинного указателя», содержащего новое значение имени компьютера.
«длинный указатель» - это ссылка на старую модель памяти, где у вас были 16-битные указатели и 32-битные «длинные указатели», в настоящее время все указатели 32- или 64-битные, в зависимости от параметров компилятора.
Исторически сложилось так, что P означает «указатель», а LP - «длинный указатель». Длинные указатели (также называемые дальними указателями) являются пережитком 16-битной Windows, когда они были необходимы для адресации диапазонов памяти за пределами текущего сегмента. Префикс LP был сохранен, чтобы упростить перенос 16-битного кода в 32-битную Windows. Сегодня нет различия - указатель есть указатель. - Соглашения о кодировании Windows
person
Pete Kirkham
schedule
09.08.2018