|
3楼
楼主 |
发表于 2004-2-8 20:18:00
|
只看该作者
文档和vb示例里:
0 ~: r8 s8 s+ P6 B* @3 u...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As lpdata, ByVal lpMsg As String) As Long
$ z! S! o, c: f! ]- Z 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个07 e7 I4 f0 h7 Y# j
'>> lpdata <<'这个结构不是必要的,只要是指向搜索值地址指针传过去就可以了(你的值要以0结尾,最少为你的值给足5个字节长度,长度最大250(最后一个0)); @8 ~8 P; L6 l' p N7 E% B
Private Type lpdata'我选择只传送一个变量,如果是String的话,把数值弄到String里我没有好办法,这个结构解决了问题9 O' z+ O" y2 l3 \* ~! a
FirstFourByte As Long'这个是Byte的话违反VB的规则,没办法(我把所有的内容都放到了这个结构里,最后一个是0
7 N2 g, K r7 |; q8 {! F LastByte(62) As long
# Z$ m1 w) O# w+ \- uEnd Type
4 P7 s8 g, _/ i6 t2 P8 v! g这做法纯粹是对vb的不了解造成的,可以声明为:/ J( D2 u" ?- s: a% w$ }
...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As long, ByVal lpMsg As String) As Long
$ N1 P- S( \- t1 x u& @' I7 T4 [ 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0(vb里可以是个总共256字节长的数组,按地址传递第一个数组元素就可以了)! V% g, L6 C( |/ p' \+ `4 [6 F
这点在0.73c版的说明里纠正了,DLL和VB示例代码也作了像因修改! v N- }) U. Q* e' b! I& e" o
% L# c- o- J0 f! A& V
|
|