该用户从未签到
|
3楼
楼主 |
发表于 2004-2-8 20:18:00
|
只看该作者
文档和vb示例里:
; a% ?& [6 X- h3 ]- b/ I...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As lpdata, ByVal lpMsg As String) As Long% o. q2 U! O5 Y9 p) W2 s
'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0
' U2 n! P+ m; M0 e$ t% i P'>> lpdata <<'这个结构不是必要的,只要是指向搜索值地址指针传过去就可以了(你的值要以0结尾,最少为你的值给足5个字节长度,长度最大250(最后一个0))2 {8 v( ?" i2 b' q5 x
Private Type lpdata'我选择只传送一个变量,如果是String的话,把数值弄到String里我没有好办法,这个结构解决了问题
: c9 x4 u$ V j' I( |( ~ FirstFourByte As Long'这个是Byte的话违反VB的规则,没办法(我把所有的内容都放到了这个结构里,最后一个是0+ H* \) B1 S Y |1 x- @. y+ A
LastByte(62) As long' [# F x+ d1 K' ^1 Q6 u, G: J
End Type
" S* Y1 F7 l3 L4 h这做法纯粹是对vb的不了解造成的,可以声明为:
, }5 j/ x+ n- ]: {...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As long, ByVal lpMsg As String) As Long
# n& _3 v9 A' l, L 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0(vb里可以是个总共256字节长的数组,按地址传递第一个数组元素就可以了)
$ A0 m4 q' i3 C! z这点在0.73c版的说明里纠正了,DLL和VB示例代码也作了像因修改
0 w4 P! x% P2 k6 v8 X# [! T
: u& U/ `- k* R0 T5 k% D4 s' U U |
|