Jas*_*son 6 c++ winapi file-management
我找到了这个函数GetFileSizeEx(),它返回PLARGE_INTEGER中由结构联合形成的文件大小.
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} ;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
Run Code Online (Sandbox Code Playgroud)
它是否像我称之为结构结构一样?如何确定返回的文件大小以及它可以处理的大量信息?
您可能误解了 aunion是什么。文件的长度通过以下方式获得
LARGE_INTEGER len_li;
GetFileSizeEx (hFile, &len_li);
int64 len = (len_li.u.HighPart << 32) | len_li.u.LowPart;
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用现代编译器直接访问 64 位表示形式:
LARGE_INTEGER len_li;
GetFileSizeEx (hFile, &len_li);
LONGLONG len_ll = len_li.QuadPart;
Run Code Online (Sandbox Code Playgroud)