我在16位应用程序中使用此代码来获取C驱动器上的可用空间。 结果是:
127 sectors/cluster, 15747 clusters, 512 bytes/sector, 15747 total clusters.
但是当试图将我的代码迁移到32位时,像intdos,int86x这样的函数不起作用。我试图使用GetDiskFreeSpace,但我得到了这个:
Bytes/Sector = 512 Sectors/Cluster = 8 dwFreeClusters = 41af86 dwTotalClusters = 9c3dbd
请帮我将此代码迁移到32位并获得相同的结果:
#include <dos.h>
#include <stdio.h>
union REGS inregs, outregs;
main()
{
inregs.h.ah = 0x36; /* get disk free space function number */
inregs.h.dl = 3; /* drive C: */
intdos(&inregs, &outregs);
printf("%d sectors/cluster, %d clusters,%d bytes/sector, %d total clers",
outregs.x.ax, outregs.x.bx, outregs.x.cx,
outregs.x.dx);
}