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

问题描述

各位大侠,关于以下问题,强烈请求帮助!想获取当前自定义控件对象的地址,原VB6.0中用ret=objPtr(Me),程序转到VB.NET环境中,将自定义控件编写定义为类,而上述语句则改写为:ImportsSystem.Runtime.InteropServicesDimsfHandleAsGCHandleDimretAsIntegersfHandle=GCHandle.Alloc(Me,GCHandleType.Pinned)ret=sfHandle.AddrOfPinnedObject.ToInt32结果,运行到GCHandle.Alloc时,抛出ArgumentException异常,提示:"具有非基元(非直接复制到本机结构中的)成员的实例不能被固定。"哪位高手,给指点迷津?不胜感激!

解决方案

解决方案二:
托管类型取地址?想法很好,但.net似乎做不到
解决方案三:
可否详细说明一下?有否其他获取对象地址的方法,可否给个示例?
解决方案四:
有问题请先GOOGLE,BAIDU
解决方案五:
该回复于2008-05-09 11:14:23被版主删除
解决方案六:
没遇到过这种情况.
解决方案七:
Google,baidu上没有类似问题

时间: 2024-10-21 14:02:05

如何处理GCHandle.Alloc()的参数异常?的相关文章

规则引擎-调用ilog jrules 报未知的参数异常

问题描述 调用ilog jrules 报未知的参数异常 问题现象: 在java项目中使用了ILOG JRules规则引擎,当并发调用规则时,就会报java.lang.IllegalArgumentException: 未知的参数 "carPricingOutputXOMList"异,但是不用并发,单独调就不会报错. 请问各位大神,有遇到这样问题的吗?到底是什么原因.请帮忙指点指点.

android中fragment切换的时候遇到非法参数异常的问题

问题描述 android中fragment切换的时候遇到非法参数异常的问题 FragmentTabHost中加入了两个fragment,片段1和片段2.运行后从片段1到片段2没有出问题,当从片段2再回到片段1的时候出现非法参数异常. 异常代码如图 找到错误主要原因是设置了一个布局的ID: gridview_layout.setId(CAL_LAYOUT_ID); 请问为什么在fragment中设置id切换片段后会发生异常? 解决方案 你这两个页面的id相同 但是页面不是同一种类型的 有冲突

关于Request.BinaryRead的参数异常

问题描述 小弟现在项目要要用到Request.BinaryRead,byte[]fileData,formData;formData=Request.BinaryRead(Request.ContentLength);无论ContentLength为何值的时候都提示ArgumentException异常,当ContentLength能取到值的时候,这个(Request.BinaryRead)应该能读到数据吧,请大侠们指教,小弟刚参加工作.谢谢 解决方案 解决方案二:这个问题还没有研究过帮你顶一下

详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good

目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口的具体应用 常用HandlerMethodArgumentResolver介绍 常用HandlerMethodReturnValueHandler介绍 本文开头现象解释以及解决方案 编写自定义的HandlerMet

C语言之可变参数问题

概述 C语言中有一种长度不确定的参数,形如:"-",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数. 原型: int printf( const char *format [, argument]... ); 使用例: printf("Enjoy yourself everyday!\n"); printf("The value is %d!\n", value); 这种可变参数可以说是C语言一个比较难理解的部分,这里会

C/C++语言中可变参数的用法

我们在C语言编程中会遇到一些参数个数可变的函数,例如printf() 这个函数,它的定义是这样的:  int printf( const char* format, ...);  它除了有一个参数format固定以外,后面跟的参数的个数和类型是  可变的,例如我们可以有以下不同的调用方法:  printf("%d",i);  printf("%s",s);  printf("the number is %d ,string is:%s", i,

Java千百问_04异常处理(006)_常见的Java异常有哪些(运行时)

1.常见的java运行时异常有哪些 了解运行时异常看这里:什么是java中的异常 常见的非运行时异常看这里:常见的非运行时异常有哪些 我们所说的常见异常是指jdk或者其他常用第三方jar中,出现频次很高的异常.常见的运行时异常(RuntimeException)包括: 空指针异常类:NullPointerException 数组下标越界异常:ArrayIndexOutOfBoundsException 数组负长度异常:NegativeArraySizeException 数组存储异常:Array

java-JAVA程序中,校验传入的参数是否是正确,最优方法

问题描述 JAVA程序中,校验传入的参数是否是正确,最优方法 各位大神,指导下 在java程序中,校验传入的参数是否是正确,我现用的有2种方法: 1:是直接自定义抛出参数异常[IllegalArgumentException] 2:不抛出异常,把这个参数异常的计入日志直接return 哪种好些呢? 或者还有其他的最佳实践吗? 解决方案 个人认为还是写入日志比较好. 解决方案二: 看异常的性质,如果异常发生不处理会导致程序出现不可预料的结果,最好还是直接丢出,这样调试起来容易. 解决方案三: 是否

Android SurfaceView运行机制剖析--处理切换到后台再重新进入程序时的异常

有不少朋友都遇到过这种问题,程序执行时切换到后台,然后再重新进入会报异常,本文就这种问题全面讲解下SurfaceView的运行机制,了解了这些原理你就能自己解决这些问题了. 我们通常会通过单击HOME按键或返回按键等操作切换到后台,之后可能会再次进入程序,这个时候就有可能报异常.这里SurfaceView可能报的异常主要有两点,如下: 一.提交画布异常.如下图(模拟器错误提示,以及Logcat Detail) Java代码 public void draw() { try { canvas =