这似乎是一个愚蠢的问题,但是文档要么不好,要么我丢失了一些我没有读过的东西。每当我向MSDN咨询有关c ++的问题时,我总是感到困惑。类似于SetComputerName函数。我查了一下MSDN,却不知道如何使用它,因为我一无所知。任何人都可以教我如何阅读此类内容,如果您能以通俗易懂的方式对其进行解释,则我不太擅长c ++了,谢谢!
BOOL WINAPI SetComputerName(
_In_ LPCTSTR lpComputerName
);
答案 0 :(得分:4)
这里有一些主要出于历史原因的宏,以及参数的类型和名称
BOOL WINAPI SetComputerName(
_In_ LPCTSTR lpComputerName
);
BOOL
用于布尔值,因为C在1999年之前没有标准化的bool类型,并且Windows API的版本早于此,请参见Why does microsoft use so many macros in their C++ code?
WINAPI
用于用调用约定标记Windows API函数,请参见What does "WINAPI" in main function mean?。通常,这对您来说并不重要,仅对您的编译器而言。
LPTCSTR
的意思是“指向const TCHAR字符串的长指针”。参见LPCSTR, LPCTSTR and LPTSTR。 TCHAR
是另一个宏,根据编译时选项的不同,它可以是单字节或宽字符。您需要注意的这一点,因为它是参数的类型。
_In_
将参数标记为函数的输入,而不是指向结果存储。有时这是有用的文档,同时也是代码分析的提示。参见What is _In_ in C++?
lpComputerName
,“ lp”是Microsoft匈牙利语中的“长指针”,其中包含计算机名的新值。
“长指针”是对旧内存模型的引用,在旧内存模型中,您有16位指针和32位“长指针”,如今,根据编译器选项,所有指针都是32位或64位。 >
从历史上看,P代表“指针”,LP代表“长指针”。 长指针(也称为远指针)是16位的保留 Windows,当需要它们来解决超出范围的内存范围时 当前细分。保留了LP前缀,以便于移植 16位代码到32位Windows。今天没有区别- 指针是一个指针。 -Windows Coding Conventions