#include<iostream>
#include<Windows.h>
using namespace std;
void main()
{
HANDLE h = CreateFile(L"d:\\java api.chm",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ,
0,
OPEN_EXISTING ,
0,
0);
if(h==INVALID_HANDLE_VALUE)
{
cout<<"error"<<endl;
return;
}
PLARGE_INTEGER u;
GetFileSizeEx(h, u);
/* cout<< u->HighPart <<endl
<< u->LowPart <<endl;*/
cout<< u->QuadPart <<endl;
}
14 个解决方案
#1
LARGE_INTEGER u;
GetFileSizeEx(h, &u);
#2
C++基础啊,没学好
LARGE_INTEGER u;
GetFileSizeEx(h, &u);
#3
回1楼 回2楼
PLARGE_INTEGER 声明的就是指针,你们没用过?奇怪了,换成你们的以后输出都是0
PLARGE_INTEGER 声明的就是指针,你们没用过?奇怪了,换成你们的以后输出都是0
#4
PLARGE_INTEGER u;// 是一个 指针, 但 没说指向哪里?
GetFileSizeEx(h, u);
//
LARGE_INTEGER u
PLARGE_INTEGER pu=&u;//
GetFileSizeEx(h, u);
//
LARGE_INTEGER u
PLARGE_INTEGER pu=&u;//
#5
为啥输出的大小是0
#6
如果用PLARGE_INTEGER,需要分配内存
PLARGE_INTEGER u = new PLARGE_INTEGER;
GetFileSizeEx(h, u);
//........
delete u;
#7
PLARGE_INTEGER u = new LARGE_INTEGER;
GetFileSizeEx(h, u);
//........
delete u;
#8
文件大小怎么是0呢
#9
用:
DWORD GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);
试试
DWORD GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);
试试
#10
这个不错,getfilesize完全可以获得的大小
getfilesizeex这个版本没用过
#11
LARGE_INTEGER 是个联合啊。
结构体对象和指针要分清楚。
结构体对象和指针要分清楚。
#12
为啥是0呢,怎么才不是0呢
#13
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
是不是 cout 不支持 LONGLONG
cout<< u->QuadPart <<endl;
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
是不是 cout 不支持 LONGLONG
cout<< u->QuadPart <<endl;
#14
我输出过64位的,好使
#1
LARGE_INTEGER u;
GetFileSizeEx(h, &u);
#2
C++基础啊,没学好
LARGE_INTEGER u;
GetFileSizeEx(h, &u);
#3
回1楼 回2楼
PLARGE_INTEGER 声明的就是指针,你们没用过?奇怪了,换成你们的以后输出都是0
PLARGE_INTEGER 声明的就是指针,你们没用过?奇怪了,换成你们的以后输出都是0
#4
PLARGE_INTEGER u;// 是一个 指针, 但 没说指向哪里?
GetFileSizeEx(h, u);
//
LARGE_INTEGER u
PLARGE_INTEGER pu=&u;//
GetFileSizeEx(h, u);
//
LARGE_INTEGER u
PLARGE_INTEGER pu=&u;//
#5
为啥输出的大小是0
#6
如果用PLARGE_INTEGER,需要分配内存
PLARGE_INTEGER u = new PLARGE_INTEGER;
GetFileSizeEx(h, u);
//........
delete u;
#7
PLARGE_INTEGER u = new LARGE_INTEGER;
GetFileSizeEx(h, u);
//........
delete u;
#8
文件大小怎么是0呢
#9
用:
DWORD GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);
试试
DWORD GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);
试试
#10
这个不错,getfilesize完全可以获得的大小
getfilesizeex这个版本没用过
#11
LARGE_INTEGER 是个联合啊。
结构体对象和指针要分清楚。
结构体对象和指针要分清楚。
#12
为啥是0呢,怎么才不是0呢
#13
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
是不是 cout 不支持 LONGLONG
cout<< u->QuadPart <<endl;
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
是不是 cout 不支持 LONGLONG
cout<< u->QuadPart <<endl;
#14
我输出过64位的,好使