首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于钩子函数的第三个参数:Iparam解决办法

2012-01-14 
关于钩子函数的第三个参数:Iparam它原为指向一个内存地址的指针,但因为VB不公开支持指针,所以Iparam的值为

关于钩子函数的第三个参数:Iparam
它原为指向一个内存地址的指针,但因为VB不公开支持指针,所以Iparam的值为一个内存地址?这句话对吗?再问下:内存地址可以为负的值吗?

[解决办法]
地址不能为负数,也不可能会是负数!

当你的变量是一个负数时,你用传址的方式传进该值,那么这个变量的地址肯定会是个正整数
当你以传值的方式传递该变量,虽然该变量的值为负数,但是要记住一点,在 C(C#、C++)中,像这类传递指针的参数,类型虽然是 void *,但实际上是一个 DWORD 无符号值,系统会自动将这个负数转换,所以你永远也不可能传递一个负数给一个需要指针参数的函数里

当你传递参数的时候,使用传址方式,其实就已经是在使用指针
[解决办法]
如果你看见这个值为负数,那就是因为VB不支持无符号变量类型的原因.

不要管,直接用就是了....系统给过来的值一般不会有错,相信微软:)
[解决办法]
地上肯定不是负的。

在 VB 中,Long类型是有符号的。那个‘负号’仅是人为的定义而已。

在作为地址使用这个数值时,它才不会管你“人如何看待这个数据”呢,负号根本就是不存在的!

热点排行