DLL 要求传入Byte指针,VB中如何获取变量地址阿?

gotwhat 2003-02-17 07:26:41
急!!!
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gotwhat 2003-03-07
  • 打赏
  • 举报
回复
后来我重写了那个ActiveX,用了两个 成员变量保存了一下数据,直接不传递参数了。
TechnoFantasy 2003-02-18
  • 打赏
  • 举报
回复
哦,你的这个不是调用API函数,是调用ActiveX控件中的方法。至于参数的传递,应该是: Sample1.writeAddress(pByte as long) as boolean
因为在Win32下面所有的指针都是32位的。
gotwhat 2003-02-17
  • 打赏
  • 举报
回复
说详细一点吧,我做一个OCX。原型比如说是
[id(6)] boolean writeAddress(short* pByte);

在VB6 中使用了这个控件,
就变成了:Sample1.writeAddress(pByte as integer) as boolean


如果直接用 dim buf as byte 的形式,编译通过,运行不通过。
to: TechnoFantasy(www.applevb.com), varPtr 是 long 阿。同样编译通过,运行不通过。


zyizyizyi 2003-02-17
  • 打赏
  • 举报
回复
但VB默认本来就是地址传递啊
TechnoFantasy 2003-02-17
  • 打赏
  • 举报
回复
使用VarPtr函数可以获得变量地址:

Dim x as Byte

Debug.Print VarPtr(x)

不过正确的方式是在函数定义时将参数定义成ByRef类型的,这样VB在传递参数时传递的就是参数的指针而不是参数值。
Sean918 2003-02-17
  • 打赏
  • 举报
回复
写出 dll 函数原型来
fbmsf 2003-02-17
  • 打赏
  • 举报
回复
直接用变量,vb会帮你转换的
用户 昵称 2003-02-17
  • 打赏
  • 举报
回复
直接用变量就行了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧