Собственно есть такой код, который неверно работает в Qt Creator:
unsigned __int64 FreeBytesToCaller, TotalBytes, FreeBytes;
????? WinApiLibrary::GetHardDriveInfo(int flag)
{
GetDiskFreeSpaceEx((LPCTSTR)"c:\\", (PULARGE_INTEGER)&FreeBytesToCaller, (PULARGE_INTEGER)&TotalBytes, (PULARGE_INTEGER)&FreeBytes);
switch (flag)
{
case 1:
return FreeBytesToCaller;
break;
case 2:
return TotalBytes;
break;
case 3:
return FreeBytes;
break;
}
}
Вызываю так:
qDebug() << wl.GetHardDriveInfo(1);
Вместо вопросов ставил все, что только можно (ULARGE_INTEGER, PULARGE_INTEGER, unsigned __int64) и всегда вместо нормального значения получаются какие-то левые. Кстати, в кодблоксе такой код работает нормально:
unsigned __int64 i64FreeBytesToCaller,
i64TotalBytes,
i64FreeBytes;
GetDiskFreeSpaceEx ("c:/",
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
cout << i64FreeBytes/1024/1024 << "/" << i64TotalBytes/1024/1024 << '\n';