masap32中带有64位数字的winapi
答
你可以随心所欲地做任何事情,但是在masm32中进行计算有点尴尬。你应该能够填充任何其他使用64位整数的数据结构。通过将值加载到EDX:EAX(因此将前4个字节加载到EAX中,将下4个字节加载到EDX中),也可以对64位进行一些算术运算,例如除法。但是,请注意,这里可能发生溢出,需要处理或避免溢出。
如果你只是想使用此功能,您可以直接调用C运行时库中的printf函数打印出卷的大小:
invoke crt_printf,chr$("GetDiskFreeSpaceEx, total bytes: %I64d%c"),
dqTotalBytes,10
然而,由于手册说“确定的总磁盘或卷上的字节数,请使用IOCTL_DISK_GET_LENGTH_INFO。“前面的代码只会告诉您当前用户有多少可用。
是不是这个数字是磁盘上的可用字节数? – Nifle 2009-12-13 16:20:06
你在用什么语言?向我们展示一些代码.. – Nifle 2009-12-13 16:21:25
我使用masm32 我修复了某些问题, 调用GetDiskFreeSpaceEx,esi,0,addr totalsize,0 调用StrFormatByteSize64,totalsize,totalsize + 4,ADDR sizebuffer,SIZEOF totalsize -3 – 2009-12-13 17:07:33