如何处理GCHandle.Alloc()的参数异常?

cyndy_wood 2008-04-12 08:02:54
各位大侠,关于以下问题,强烈请求帮助!
想获取当前自定义控件对象的地址,原VB6.0中用ret=objPtr(Me),
程序转到VB.NET环境中,将自定义控件编写定义为类,而上述语句则改写为:
Imports System.Runtime.InteropServices
Dim sfHandle As GCHandle
Dim ret As Integer

sfHandle = GCHandle.Alloc(Me,GCHandleType.Pinned)
ret = sfHandle.AddrOfPinnedObject.ToInt32

结果,运行到GCHandle.Alloc时,抛出ArgumentException异常,提示:
"具有非基元(非直接复制到本机结构中的)成员的实例不能被固定。"

哪位高手,给指点迷津?不胜感激!
...全文
452 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyndy_wood 2008-05-05
  • 打赏
  • 举报
回复
Google, baidu 上没有类似问题
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
没遇到过这种情况.
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
有问题请先GOOGLE,BAIDU
cyndy_wood 2008-04-13
  • 打赏
  • 举报
回复
可否详细说明一下?
有否其他获取对象地址的方法,可否给个示例?
  • 打赏
  • 举报
回复
托管类型取地址? 想法很好,但.net似乎做不到

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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