如何处理GCHandle.Alloc()的参数异常?
各位大侠,关于以下问题,强烈请求帮助!
想获取当前自定义控件对象的地址,原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异常,提示:
"具有非基元(非直接复制到本机结构中的)成员的实例不能被固定。"
哪位高手,给指点迷津?不胜感激!