WIN32_FIND_DATA问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:19:24
在MSDN中WIN32_FIND_DATA定义是这样的:
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwOID;
TCHAR cFileName[MAX_PATH];
} WIN32_FIND_DATA;
定义一个WIN32_FIND_DATA变量WIN_DATA,然后在VC的编程环境中写:
WIN_DATA. //写到"."时,系统会自动列出该类的所有成员,这回出问题了,我发现列出的成员跟MSDN中的不一致!这是什么原因?难道MSDN错了?

不能说他错吧。
你的VC有个版本问题,MSDN也有版本问题。这两个不匹配时,可能就不一致。我查到的MSDN对WIN32_FIND_DATA的定义就不是你所列的那样,而是和VC一致的。
如果不一致,就不能听MSDN的。因为VC编译器不是根据MSDN写的,MSDN倒是根据VC写的。按VC列出的没错。退一步说,一般你也用不到某些两者不一致的成员。
实在没把握,就把winbase.h调出来看看WIN32_FIND_DATA是如何定义的--肯定和VC列出来的一样。只是VC列出来的是为查找方便而按字符升序排列的,而winbase.h中对成员的排列是按实际存储顺序排列的。