怎么样从VB的对象地址转换得到VB的对象, 很急!

treeline.fm 2004-10-06 08:06:15
如果得到了VB对象的地址, 并且知道该对象的类型, 那么怎么样从VB的对象地址转换得到一个VB对象(在C++中是非常简单的问题), 在VB中是不是可以实现呢? 请大家帮帮忙啊, 很急啊!
...全文
134 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2004-10-07
  • 打赏
  • 举报
回复
//感觉思路是对的, 但为什么不行呢?

是一个进程的吗?不是的话,要麻烦一些
cso 2004-10-07
  • 打赏
  • 举报
回复
详细函数信息来自:http://www.freevbcode.com/ShowCode.asp?ID=230

这个函数没有错误,可能是你的地址不正确,最好用objptr()取得
treeline.fm 2004-10-07
  • 打赏
  • 举报
回复
感觉思路是对的, 但为什么不行呢?
treeline.fm 2004-10-07
  • 打赏
  • 举报
回复
试了很多次, 还是不行
treeline.fm 2004-10-07
  • 打赏
  • 举报
回复
非常感谢! 不过为什么在CopyMemory obj, pObj, 4这句就系统出错了呢?
hn123 2004-10-07
  • 打赏
  • 举报
回复
学习
ryuginka 2004-10-07
  • 打赏
  • 举报
回复
学习
treeline.fm 2004-10-07
  • 打赏
  • 举报
回复
问题解决了, 谢谢大家, 前面的错误是因为我给了错误的对象地址:)
cso 2004-10-06
  • 打赏
  • 举报
回复
也很简单

Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (dest As _
Any, Source As Any, ByVal bytes As Long)

Function ObjFromPtr(ByVal pObj As Long) As Object
Dim obj As Object
' force the value of the pointer into the temporary object variable
CopyMemory obj, pObj, 4
' assign to the result (this increments the ref counter)
Set ObjFromPtr = obj
' manually destroy the temporary object variable
' (if you omit this step you'll get a GPF!)
CopyMemory obj, 0&, 4
End Function

7,785

社区成员

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

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