欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基 礎(chǔ) 函 數(shù) 參 考


DllCall

調(diào)用 DLL 文件中的函數(shù).

DllCall ( "文件", "返回類型", "函數(shù)" [, "類型 1", 參數(shù) 1[, "類型 n", 參數(shù) n]] )

參 數(shù)

文件 DLL 文件名. 例如 "user32.dll". 也可使用由 DllOpen 返回的句柄 (見備注).
返回類型 函數(shù)的返回類型 (見下文).
函數(shù) DLL 文件內(nèi)的函數(shù)名稱, 例如 "MessageBox" 或序號(hào)值, 例如 62.
類型1 [可選參數(shù)] 第一個(gè)類型參數(shù) (見備注).
參數(shù)1 [可選參數(shù)] 第一個(gè)實(shí)際參數(shù) (見備注).
類型n [可選參數(shù)] 第 n 個(gè)類型參數(shù) (見備注).
參數(shù)n [可選參數(shù)] 第 n 個(gè)實(shí)際參數(shù) (見備注).

類型值:
類型 描述
none 沒有值 (用于只有一個(gè)有效返回的類型 - 相當(dāng)于 C 語(yǔ)言的 void)
BYTE 無(wú)符號(hào) 8 位整數(shù)
BOOLEAN 無(wú)符號(hào) 8 位整數(shù)
short 16 位整數(shù)
USHORT 無(wú)符號(hào) 16 位整數(shù)
WORD 無(wú)符號(hào) 16 位整數(shù)
int 32 位整數(shù)
long 32 位整數(shù)
BOOL 32 位整數(shù)
UINT 無(wú)符號(hào) 32 位整數(shù)
ULONG 無(wú)符號(hào) 32 位整數(shù)
DWORD 無(wú)符號(hào) 32 位整數(shù)
INT64 64 位整數(shù)
UINT64 無(wú)符號(hào) 64 位整數(shù)
ptr 常規(guī)指針 (void *)
HWND 窗口句柄 (指針)
HANDLE 句柄(指針)
float 單精度浮點(diǎn)數(shù)
double 雙精度浮點(diǎn)數(shù)
INT_PTR, LONG_PTR, LRESULT, LPARAM 大型整數(shù)指針, 在 x86 或 x64 的 AutoIt 版本中運(yùn)行.
UINT_PTR, ULONG_PTR, DWORD_PTR, WPARAM 大型無(wú)符號(hào)整數(shù)指針, 在 x86 或 x64 的 AutoIt 版本中運(yùn)行.
str ANSI 字符串 (不超過(guò) 65536 個(gè)字符).
wstr UNICODE 寬字符串 (不超過(guò) 65536 個(gè)字符).
struct 用于 DllStructCreate() 創(chuàng)建結(jié)構(gòu)
* 添加一個(gè) * 到另一個(gè)類型末尾. 例如 "int*" 傳遞一個(gè)指針到 "int" 類型.

Windows API 類型轉(zhuǎn)換為 AutoIt 類型:
WINDOWS API 類型 AutoIt 類型
LPCSTR/LPSTR str
LPCWSTR/LPWSTR wstr
LPVOID ptr
LPxyz xyz*
HINSTANCE handle
HRESULT long
LONGLONG/LARGE_INTEGER INT64
ULONGLONG/ULARGE_INTEGER UINT64
SIZE_T ULONG_PTR
要在結(jié)構(gòu)中使用嵌套結(jié)構(gòu),必須重新定義嵌套結(jié)構(gòu).
例如, 一個(gè)結(jié)構(gòu)包含 2 POINT ("long;long"), 必須定義為 "long;long;long;long".
前兩個(gè) long 值對(duì)應(yīng)的第一個(gè) POINT; 后兩個(gè) long 值對(duì)應(yīng)的第二個(gè) POINT.
了解更多的 Windows API 類型, 請(qǐng)參考 MSDN.

返 回 值

成功: @error = 0.
失敗: 設(shè)置 @error
@error: 1 不能使用這個(gè) DLL 文件,
2 未知的 "返回類型",
3 在 DLL 文件中未找到這個(gè)"函數(shù)",
4 參數(shù)數(shù)量錯(cuò)誤.
5 參數(shù)無(wú)效.
見備注.

備 注

如果指定 dll 文件名, DLL 將會(huì)被自動(dòng)加載, 并在調(diào)用結(jié)束后關(guān)閉.
如果要手動(dòng)控制 DLL 的加載和卸載, 則應(yīng)使用 DllOpen 與 DllClose 函數(shù), 并使用句柄代替文件名.

默認(rèn) AutoIt 使用 'stdcall' 的調(diào)用約定. 要使用 'cdecl' 調(diào)用方式, 在返回值類型后面加上 ':cdecl'. 例如:
DllCall("SQLite.dll", "int:cdecl", "sqlite3_open", "str", $sDatabase_Filename , "long*", 0).

默認(rèn) AutoIt 使用 ANSI 的函數(shù)名, 例如 MessageBoxA 使用 MessageBox 給出的函數(shù)名.
要調(diào)用 unicode 版本, 使用 MessageBoxW.

如果函數(shù)調(diào)用失敗, 將設(shè)置 @error 為 1.
否則返回包含函數(shù)返回值和所有參數(shù)副本的數(shù)組 (包括可能被傳遞參數(shù)修改的函數(shù)參數(shù)).
$return[0] = 函數(shù)返回值
$return[1] = 參數(shù)1
$return[2] = 參數(shù)2
...
$return[n] = 參數(shù)n

相 關(guān) 函 數(shù)

DllCallbackFree, DllCallbackGetPtr, DllCallbackRegister, DllOpen, DllClose, DllStructCreate, DllStructGetPtr

函 數(shù) 示 例


; *******************************************************
; 示例 1 - 直接調(diào)用 MessageBox API
; *******************************************************

Local $result = DllCall("user32.dll", "int", "MessageBox", "hwnd", 0, "str", "若干標(biāo)題", "str", "若干標(biāo)題", "int", 0)


; *******************************************************
; 示例 2 - 修改調(diào)用函數(shù)的參數(shù)
; *******************************************************

Local $hwnd = WinGetHandle("[CLASS:Notepad]")
$result = DllCall("user32.dll", "int", "GetWindowText", "hwnd", $hwnd, "str", "", "int", 32768)
MsgBox(0, "", $result[0]) ; 返回的字符數(shù)
MsgBox(0, "", $result[2]) ; 參數(shù) 2 返回的文本


; *******************************************************
; 示例 3 - 顯示 PickIconDlg(顯示選擇包含圖標(biāo)資源文件的對(duì)話框) 窗口
; *******************************************************

Local $sFileName = @SystemDir & '\shell32.dll'

; 創(chuàng)建數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)圖標(biāo)索引
Local $stIcon = DllStructCreate("int")
Local $stString = DllStructCreate("wchar[260]")
Local $structsize = DllStructGetSize($stString) / 2
DllStructSetData($stString, 1, $sFileName)

; 運(yùn)行 PickIconDlg - '62' 是這個(gè)函數(shù)的序號(hào)值
DllCall("shell32.dll", "none", 62, "hwnd", 0, "ptr", DllStructGetPtr($stString), "int", $structsize, "ptr", DllStructGetPtr($stIcon))

$sFileName = DllStructGetData($stString, 1)
Local $nIconIndex = DllStructGetData($stIcon, 1)

; 顯示新的文件名和圖標(biāo)索引
MsgBox(0, "信息", "選擇的文件: " & $sFileName & @LF & "圖標(biāo)索引: " & $nIconIndex)

provider with jb51.net (unicode)