GetDiskFreeSpaceA C++

我用的是vs2008里的标准C++,没用包含MFCBOOLuDriveFree=0;LPDWORDlngOneNum=0,lngTwoNum=0,lngThreeNum=... 我用的是 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:\"

非常感谢各位的帮助,我研究有一星期了就是不明白这是为什么。
展开
 我来答
花式码农
2009-03-14 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4894
采纳率:0%
帮助的人:4736万
展开全部
我晕死了。楼主你不能照搬啊。。。
-------
LPDWORD是DWORD的指针。
那么你传递应该这样:DWORD dwOneNum;
在传递参数的时候用&dwOneNum.
人家API一看是空指针,当然不会写入大小信息进去啦。。。

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

这么简单的问题不知道我说明白没有。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式