将数组转换为IntPtr
//第一种,使用不安全的代码块来访问直接指向字节数组的指针。
static IntPtr ArrayToIntptr(byte[] source)
{if (source == null){return IntPtr.Zero;}unsafe{fixed (byte* point = source){IntPtr ptr = new IntPtr(point);return ptr;}}
} //第二种,可以使用 GCHandle 来获得对象。
GCHandle
using System.Runtime.InteropServices;byte[] test = new byte[5];
GCHandle hObject = GCHandle.Alloc(test, GCHandleType.Pinned);
IntPtr pObject = hObject.AddrOfPinnedObject();if(hObject.IsAllocated)
{hObject.Free();
}//第三种, 通过 LocalAlloc 创建内存块并将数据封送处理到该内存块。
LocalAlloc
[DllImport("coredll.dll",SetLastError=true)]
public static extern IntPtr LocalAlloc(uint uFlags, uint uBytes);
[DllImport("coredll.dll",SetLastError=true)]
public static extern IntPtr LocalFree(IntPtr hMem);
[DllImport("coredll.dll",SetLastError=true)]
public static extern IntPtr LocalReAlloc(IntPtr hMem, uint uBytes, uint fuFlags);public const uint LMEM_FIXED = 0;
public const uint LMEM_MOVEABLE = 2;
public const uint LMEM_ZEROINIT = 0x0040;byte[] test = new byte[5];
IntPtr p = LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT, (uint)test.Length);if (p == IntPtr.Zero)
{throw new OutOfMemoryException();
}
else
{Marshal.Copy(test, 0, p, test.Length);
}
将数组转换为IntPtr相关推荐
- 如何将 byte[] 转换为 IntPtr?
C#中使用指针转换数据类型[C#/unsafe] http://www.cnblogs.com/Chinasf/archive/2005/05/28/163932.html 今日因为一个同事说起,在原 ...
- php多维数组和对象,在PHP中将多维多对象数组转换为标准多维数组
我有一个来自simplexml_import_dom()函数调用的多维多对象数组. 一个数组的一部分: [Price] => SimpleXMLElement Object ( [Prices] ...
- 如何将Swift数组转换为字符串?
本文翻译自:How do I convert a Swift Array to a String? I know how to programmatically do it, but I'm sure ...
- 如何将零终止的字节数组转换为字符串?
本文翻译自:How to convert a zero-terminated byte array to string? I need to read [100]byte to transfer a ...
- flash与字符串:数组转换为字符串
//将数组转换为字符串 function getArrayString(array:Array):String { var len:int=array.length; if(len==0) retur ...
- sql数组转换为字符串
将数组转换为字符串 利用 ARRAY_TO_STRING() 函数,您可以将 ARRAY 转换为单个 STRING 值,或者将 ARRAY 转换为单个 BYTES 值,其中,生成的值是有序连接的数组元 ...
- java 静态 二维数组 转化hashmap_将一个二维数组转换为 hashmap 哈希表
/** * 将一个二维数组转换为 hashmap * * 如果省略 $val 参数,则转换结果每一项为包含该项所有数据的数组. * * @param array $arr * @param strin ...
- php把400个数组建二维,请教怎么将多维数组转换为二维数组
请问如何将多维数组转换为二维数组? 比如无限级菜单,通过递归后是一个多维数组,我想把这个多维数组转换为二维数组并重新排序后进行foreach,请问这个function该如何写? ------解决方案- ...
- 把一个一维数组转换为in ()
把一个一维数组转换为in()形式. function dbCreateIn($itemList) {if(empty($itemList )){return " IN ('') " ...
- ITK:将数组转换为图像
ITK:将数组转换为图像 内容提要 输出结果 C++实现代码 内容提要 将C样式的数组转换为itkImage. 输出结果 C++实现代码 #include "itkImage.h" ...
最新文章
- [译] 在 Facebook 发一张登机牌,你就有可能被盗号了
- WordPress podPress插件‘playerID’参数跨站脚本漏洞
- C语言 __cplusplus - C语言零基础入门教程
- mybatis处理集合和循环数组问题
- python中的update是什么意思_python 字典中的Update()函数
- 团队-象棋游戏-成员简介及分工
- Fisher准则一维聚类
- php选择nginx还是apache,浅谈apache和nginx的rewrite的区别
- MySQL常用SQL总结
- Json扩展 (转)
- 阿里云创客+千人创投会 无人机项目夺冠
- JavaScript上传图片方式
- [Python]代码重复率查找工具Clone Digger
- 数独高阶技巧之八——SDC
- 华为云Centos7搭建hadoop集群一:云服务器准备
- vue实现浏览器桌面通知
- 大学生必知到的外国典故
- Python3 基础语法知识1
- 游戏策划---ACTIONGAME游戏设计(转)
- QuickRedis 是一款 Redis 可视化管理工具
热门文章
- [RK3288][Android6.0] 调试笔记 --- 播放搜狐视频会Crash问题
- 详解Vue中的自定义指令
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
- 与计算机相关的统计表格,统计信息化 Excel与SPSS应用pdf
- 【IoT】 产品设计与工艺:塑料表面处理工艺
- 昆明冶金职业技术学院计算机,昆明冶金高等专科学校官网
- 2015 2020 r4烧录卡 区别_2020版药典,药用辅料被重视了
- 2021年山东大学考研数字电路906真题
- 银行数据仓库体系实践(13)--数据应用之监管报送
- Robot Framework怎么导入selenium2library类库