GetDiskFreeSpaceA C++

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:38:17
我用的是 vs2008 里的 标准C++,没用包含MFC
BOOL uDriveFree = 0;

LPDWORD lngOneNum = 0,lngTwoNum = 0,lngThreeNum = 0,lngFourNum=0;

uDriveFree = ::GetDiskFreeSpaceA(sDrive,lngOneNum,lngTwoNum,lngThreeNum,lngFourNum);

这是我的代码,我想问大家为什么我这么执行了程序 uDirveFree 变量的值为1表示成功执行了,但 lngOneNum 到 FourNum 的变量值会是0呢?是不是我哪步写错了? sDrive变量是 char* 类型的 我传的值是 "e:\"

非常感谢各位的帮助,我研究有一星期了就是不明白这是为什么。

我晕死了。楼主你不能照搬啊。。。
-------
LPDWORD是DWORD的指针。
那么你传递应该这样:DWORD dwOneNum;
在传递参数的时候用&dwOneNum.
人家API一看是空指针,当然不会写入大小信息进去啦。。。

--
你写的是相当于传递了N个空指针进去,结果当然是0啦。。。

这么简单的问题不知道我说明白没有。