簡體   English   中英

在masm32中具有64位編號的winapi

[英]winapi with 64bit number in masm32

我需要確定邏輯卷的大小並打印它。 GetDiskFreeSpaceEx返回大小為64位數字(?)。 我該怎么辦?

您可以用它做任何您想做的事,但是在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 。” 前面的代碼僅告訴您當前用戶可以使用多少個代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM