|
3楼
楼主 |
发表于 2004-2-8 20:18:00
|
只看该作者
文档和vb示例里:
( w4 s6 \0 B' ]% F" M1 i6 X, t8 j...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As lpdata, ByVal lpMsg As String) As Long
8 A1 P! K- V, U6 S5 w( K 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0* G8 Q+ u$ [" W4 Y5 s
'>> lpdata <<'这个结构不是必要的,只要是指向搜索值地址指针传过去就可以了(你的值要以0结尾,最少为你的值给足5个字节长度,长度最大250(最后一个0))
0 w, Y% a$ S3 D4 n% tPrivate Type lpdata'我选择只传送一个变量,如果是String的话,把数值弄到String里我没有好办法,这个结构解决了问题
( A; T. F$ [ y A- w FirstFourByte As Long'这个是Byte的话违反VB的规则,没办法(我把所有的内容都放到了这个结构里,最后一个是0
6 \4 ^9 q+ E" W3 y/ }# p2 j LastByte(62) As long
8 o/ v6 A- u) w! R7 kEnd Type
# ?' `8 T: L& T4 |( i这做法纯粹是对vb的不了解造成的,可以声明为:
' q# C, w% n/ }. Y...Lib "GameSpyDll" (ByVal hwnd As Long, lpval As long, ByVal lpMsg As String) As Long
. D- y0 ]6 W4 \9 u. f( y- v 'lpVal >>>> 指向要搜索的值,最后一位必须是0,这个指针指向的地址至少要有5个字节长的内容,包括最后一个0(vb里可以是个总共256字节长的数组,按地址传递第一个数组元素就可以了)
) k, T) t, X$ A) R+ K o$ N& _这点在0.73c版的说明里纠正了,DLL和VB示例代码也作了像因修改
- A' s, F* a$ a s9 H8 v ^. i) `. O4 J" r! }0 }! z1 x2 p0 Q/ |8 V$ w
|
|