
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:\"
非常感谢各位的帮助,我研究有一星期了就是不明白这是为什么。 展开
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啦。。。
这么简单的问题不知道我说明白没有。
-------
LPDWORD是DWORD的指针。
那么你传递应该这样:DWORD dwOneNum;
在传递参数的时候用&dwOneNum.
人家API一看是空指针,当然不会写入大小信息进去啦。。。
--
你写的是相当于传递了N个空指针进去,结果当然是0啦。。。
这么简单的问题不知道我说明白没有。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |