作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 GetDiskFreeSpaceExA
函数,但它不起作用:
int drvNbr = PathGetDriveNumber(db7zfolderw);
if (drvNbr == -1) // fn returns -1 on error
{
const char * errmsg = "error occured during get drive number";
strcpy_s(retmsg, strlen(errmsg) + 1, errmsg);
return -3;
}
char driverletter = (char)(65 + drvNbr);
string driverstr(1, driverletter);
driverstr = driverstr + ":";
PULARGE_INTEGER freespace = 0;
PULARGE_INTEGER totalnumbtype = 0;
PULARGE_INTEGER totalnumberfreebyte = 0;
fileSize = SzArEx_GetFileSize(&db, i);
BOOL myresult=GetDiskFreeSpaceExA(
driverstr.c_str(),
freespace,
totalnumbtype,
totalnumberfreebyte
);
变量freespace
的值为0
。我不知道为什么如果 driverstr.c_str()
变量的值是 D:
?
感谢您的帮助。
最佳答案
您需要提供指向将保存返回值的变量的指针。现在您重新提供空指针,因此不会返回任何内容:
::ULARGE_INTEGER freespace{};
::ULARGE_INTEGER totalnumbtype{};
::ULARGE_INTEGER totalnumberfreebyte{};
::BOOL myresult
{
::GetDiskFreeSpaceExA
(
driverstr.c_str()
, &freespace
, &totalnumbtype
, &totalnumberfreebyte
)
};
使用这些函数的宽字符版本也是一个好主意。
关于c++ - 我做错了什么? GetDiskFreeSpaceExA 的功能根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383511/
我尝试使用 GetDiskFreeSpaceExA 函数,但它不起作用: int drvNbr = PathGetDriveNumber(db7zfolderw); if (drvNbr == -1)
我是一名优秀的程序员,十分优秀!