|
3楼
楼主 |
发表于 2004-2-8 20:18:00
|
只看该作者
文档和vb示例里:( j7 \5 _: ]& I6 M2 [1 Q
...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As lpdata, ByVal lpMsg As String) As Long
- I( c- c) g5 I/ S6 k$ |, H6 g4 R 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0
: x, r/ D% j8 k) c'>> lpdata <<'这个结构不是必要的,只要是指向搜索值地址指针传过去就可以了(你的值要以0结尾,最少为你的值给足5个字节长度,长度最大250(最后一个0))
# q$ R$ o" `9 {( E" QPrivate Type lpdata'我选择只传送一个变量,如果是String的话,把数值弄到String里我没有好办法,这个结构解决了问题
2 f6 Y1 q7 s' Y) k& j; R9 D FirstFourByte As Long'这个是Byte的话违反VB的规则,没办法(我把所有的内容都放到了这个结构里,最后一个是0& z: B c$ p* i6 `4 Z6 o8 M$ P" f% ~
LastByte(62) As long
" G7 |$ _3 ]- D xEnd Type
r j* g% g, F- f" E5 [这做法纯粹是对vb的不了解造成的,可以声明为:
7 Z) B5 V7 _0 c n/ z...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As long, ByVal lpMsg As String) As Long
; f2 ^9 ~1 Z: L" T7 a 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0(vb里可以是个总共256字节长的数组,按地址传递第一个数组元素就可以了)" F! k& Y2 g( `/ D' v7 G
这点在0.73c版的说明里纠正了,DLL和VB示例代码也作了像因修改. f/ F8 d3 z/ ]4 I
) |" ?8 l/ r" f1 {. Y( U
|
|