关于钩子函数的第三个参数:Iparam
它原为指向一个内存地址的指针,但因为VB不公开支持指针,所以Iparam的值为一个内存地址?这句话对吗?再问下:内存地址可以为负的值吗?
[解决办法]
地址不能为负数,也不可能会是负数!
当你的变量是一个负数时,你用传址的方式传进该值,那么这个变量的地址肯定会是个正整数
当你以传值的方式传递该变量,虽然该变量的值为负数,但是要记住一点,在 C(C#、C++)中,像这类传递指针的参数,类型虽然是 void *,但实际上是一个 DWORD 无符号值,系统会自动将这个负数转换,所以你永远也不可能传递一个负数给一个需要指针参数的函数里
当你传递参数的时候,使用传址方式,其实就已经是在使用指针
[解决办法]
如果你看见这个值为负数,那就是因为VB不支持无符号变量类型的原因.
不要管,直接用就是了....系统给过来的值一般不会有错,相信微软:)
[解决办法]
地上肯定不是负的。
在 VB 中,Long类型是有符号的。那个‘负号’仅是人为的定义而已。
在作为地址使用这个数值时,它才不会管你“人如何看待这个数据”呢,负号根本就是不存在的!