aardio简单说说API函数的返回值

本文探讨了在aardio中调用API函数时,特别是使用SHFormatDrive函数时遇到的返回值问题。文章指出,-1和0XFFFFFFFF在内存中是等价的,取决于如何解释32位数据。不声明调用API时,aardio会默认使用有符号整数,而通过类型转换可以得到期望的结果。作者提供了有符号到无符号及无符号到有符号的转换方法。
摘要由CSDN通过智能技术生成

这篇算是对前面数据类型转换那篇的一个补充。这样基础性的理论性的东西很少有人感兴趣,但是新手容易在这里转晕。我们拿个api函数做例子。

Shell32旗下有个SHFormatDrive函数,用于呼出磁盘格式化窗口。它不会直接开始格式化,而是需要用户点击开始,所以可以放心测试。它的原型是这样:

DWORD SHFormatDrive( HWND hwnd, UINT drive, UINT fmtID, UINT options )

aardio调用api非常方便,可以先声明后调用,也可以不声明直接调用,并且推荐不声明。

var returnValue1=::Shell32.SHFormatDrive(0,16,0xffff,0) 
//参数1是父窗口句柄,参数2是磁盘序号(A盘为0),参数3固定,参数4可以认为固定
console.log(returnValue1)

我们运行代码,然后点击关闭格式化窗口(没必要为此真的格式化一个磁盘),看到返回值是-1。

我们且不必管-1代表什么,想了解可以查msdn,我们再按照先声明后调用的方式来一次:

var SHFormatDrive=::Shell32.api("SHFormatDrive","INT(ADDR hwnd,INT drive,INT fmtID,INT options)")
var returnValue2=SHFormatDrive(0,16,0xffff,0)
console.printf("0X%X",returnValue2)

我们发现,这样一来,返回值变成了0XFFFFF

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值