欧美性猛交黑人xxxx,成人毛片一区二区三区,久久综合九色综合精品,男的把j放进女人下面视频免费

在VB中使用API函數(Any)

  • 發布于:2024-01-11
  • 187 人圍觀
Any

  有些消息的參數聲明為Any.這表示該參數是一種可變的類型(你可以以整型,字符串,用戶自定義或其他的類型來傳遞).

這有一個這樣的例子:

Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" ByVal Hwnd as Long, ByVal wMsg as Long, ByVal wParam as Long, lParam as Any) as Long

lParam 聲明為Any并按引用(ByRef)傳遞.

  這里是在這個函數中如果lParam是不同類型的值時應遵循的規則:

如果該值是 傳遞形式

numeric ByVal(as Long,or as Any)

Null ByVal(as Long,or as Any)

String ByRef(as String,or as Any)

Type ByRef(as Any)

array of Type ByRef(as Any)

  如果你的函數聲明同上面的一個而且你想傳遞一個Long型數,你應該這樣寫:

Call SendMessage(Me.Hwnd,WM_XXXX,0&,ByVal LongValue)

  注意盡管頭三個參數也是數值,但它們前邊并沒有ByVal.這是因為在函數聲明中它們已經被聲明為按值傳遞(ByVal).第四個參數,由于是按引用傳遞(ByRef)(VB并不知道你要傳遞參數的類型),因此你必須加上ByVal 你可以使用別名技術來傳遞不同類型的參數:

Public Declare Function SendMessageLng Lib "User32" Alias "SendMessageA"(ByVal Hwnd as Long, ByVal wMsg as Long, ByVal wParam as Long, ByVal lParam as Long) as Long

或:

Public Declare Function SendMessageStr Lib "User32" Alias "SendMessageA"(ByVal Hwnd as Long, ByVal wMsg as Long, ByVal wParam as Long, lParam as String) as Long

  注意API參數類型本身是不會改變的.例子中的第四個參數總是一個4字節的長型數.當你按值(ByVal)傳遞一個Long或 Null時,該4字節長的數值就直接傳遞給函數.如果你傳遞一個String或其他的什么,你是按引用(ByRef)傳遞,VB傳遞的實際上是變量的地址,也是4個字節.
萬企互聯
標簽: