最近构思泛型指针类快吐血了
vb.net吧
全部回复
仅看楼主
level 13
Nukepayload2 楼主
各种整数和IntPtr还好处理,用Marshal可搞定。
碰见Single,Double需要用c#的指针复制数据,未知的Structure完全不知道怎么弄。
用PtrToStructure和StructureToPtr不仅操作失败而且会发生AccessViolationException
直接借用c#的指针复制也行不通。
因为未知Structure的GCHandle无法创建( ArgumentException 具有非基元(非直接复制到本机结构中的)成员的实例不能被固定。) ,而且c#的指针不支持泛型类型,也就无法获取它的地址。
2014年05月18日 15点05分 1
level 13
Nukepayload2 楼主
难道这东西只能用c++实现?
2014年05月18日 15点05分 2
level 13
Nukepayload2 楼主
零回复了
2014年05月19日 13点05分 3
level 10
泛型好像是一个模板,每一个继承泛型的新类型,都会在编译的时候复制(?)泛型模板的代码而生成一个完整的新类
所以应该是无法动态创建一个泛型类的
2014年05月20日 00点05分 4
对于未知结构(编译前确定好了但不是.net自带的),我只要能获取结构的非托管大小,获取指向结构的指针,把这个结构从非托管内存读到托管堆上,能把托管堆上的结构封送到指定位置的非托管内存就够了。
2014年05月20日 13点05分
问题是直接用StructureToPtr会导致FatalException(errorcode 0xc0000005 AccessViolation),别的办法又不能把托管Structure转变为非托管
2014年05月20日 13点05分
而且PtrToStructure不能处理值类(byte,int32这样特殊的Structure)
2014年05月20日 13点05分
序列化什么的就更不行了...
2014年05月20日 13点05分
1