我找到了这个函数GetFileSizeEx(),它返回PLARGE_INTEGER中由结构联合形成的文件大小。
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} ;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
我是否称它为结构结构?如何确定返回的文件大小以及它可以处理的大量信息?
答案 0 :(得分:4)
你可能误解了union
是什么。文件的长度由
LARGE_INTEGER len_li;
GetFileSizeEx (hFile, &len_li);
int64 len = (len_li.u.HighPart << 32) | len_li.u.LowPart;
或者,您可以直接使用现代编译器访问64位表示:
LARGE_INTEGER len_li;
GetFileSizeEx (hFile, &len_li);
LONGLONG len_ll = len_li.QuadPart;
答案 1 :(得分:1)