这篇算是对前面数据类型转换那篇的一个补充。这样基础性的理论性的东西很少有人感兴趣,但是新手容易在这里转晕。我们拿个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