"TCHAR cFileName [MAX_PATH];" - MSDN库中的错误?

0x6*_*C74 1 windows winapi msdn

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365740%28v=vs.85%29.aspx

cFileName
文件的名称.

的值MAX_PATH相同的几乎相同_MAX_FNAME,但使用第一是在这种情况下产生误导.无论如何,如果他们的意思是完整的名字,那应该是cFileName[MAX_PATH+_MAX_FNAME];吗?使用目的是MAX_PATH什么?

Cod*_*ray 5

MAX_PATH常数表示一个的最大长度整个路径,包括文件名和扩展名.无论是相对路径,完全限定路径,还是文件名都无关紧要; 它们都具有相同的最大长度.

因此,您永远不会看到,MAX_PATH + _MAX_FNAME因为它将超过路径允许的最大长度.

在本文中,您几乎可以找到有关Win32中路径的所有内容.请注意,某些API(通常在文档中显式调用这些API)接受使用特殊前缀表示的长路径名称,这些名称不受限制MAX_PATH.

在这种情况下,函数签名是正确的.但有时,MSDN上的示例代码片段随文档一起提供,此示例代码的范围从风格上的好奇到完全可憎.在尝试调整您找到的示例代码时,总是值得使用良好的健康剂量的常识.