|
3楼
楼主 |
发表于 2004-2-8 20:18:00
|
只看该作者
文档和vb示例里:; Y8 L* p C a& ]7 W ^6 I% q
...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As lpdata, ByVal lpMsg As String) As Long
5 c: \" ?% |9 M& L5 Y 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个01 z4 _2 Z+ ^ Q8 P) o( |2 @& k8 V
'>> lpdata <<'这个结构不是必要的,只要是指向搜索值地址指针传过去就可以了(你的值要以0结尾,最少为你的值给足5个字节长度,长度最大250(最后一个0))# f. v$ [+ u8 v4 J W' l% N4 m
Private Type lpdata'我选择只传送一个变量,如果是String的话,把数值弄到String里我没有好办法,这个结构解决了问题
- f. r p+ X0 j/ w3 Z% Y FirstFourByte As Long'这个是Byte的话违反VB的规则,没办法(我把所有的内容都放到了这个结构里,最后一个是0+ }1 n8 ^+ w5 f' X( l
LastByte(62) As long
6 i1 |( r4 ]5 Y$ ^/ ]. u& ZEnd Type
& i! Q( ~! Q$ ^9 Q4 L这做法纯粹是对vb的不了解造成的,可以声明为:" f+ a* Y& h- o7 W
...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As long, ByVal lpMsg As String) As Long( y) P+ h0 q' R/ H
'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0(vb里可以是个总共256字节长的数组,按地址传递第一个数组元素就可以了)
8 V; ]. g4 D1 l这点在0.73c版的说明里纠正了,DLL和VB示例代码也作了像因修改. n: `1 O$ q, H& ?0 y6 X% C
0 S) j: G. H' V7 T" L; e' T
|
|