//第一种,使用不安全的代码块来访问直接指向字节数组的指针。
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相关推荐

  1. 如何将 byte[] 转换为 IntPtr?

    C#中使用指针转换数据类型[C#/unsafe] http://www.cnblogs.com/Chinasf/archive/2005/05/28/163932.html 今日因为一个同事说起,在原 ...

  2. php多维数组和对象,在PHP中将多维多对象数组转换为标准多维数组

    我有一个来自simplexml_import_dom()函数调用的多维多对象数组. 一个数组的一部分: [Price] => SimpleXMLElement Object ( [Prices] ...

  3. 如何将Swift数组转换为字符串?

    本文翻译自:How do I convert a Swift Array to a String? I know how to programmatically do it, but I'm sure ...

  4. 如何将零终止的字节数组转换为字符串?

    本文翻译自:How to convert a zero-terminated byte array to string? I need to read [100]byte to transfer a ...

  5. flash与字符串:数组转换为字符串

    //将数组转换为字符串 function getArrayString(array:Array):String { var len:int=array.length; if(len==0) retur ...

  6. sql数组转换为字符串

    将数组转换为字符串 利用 ARRAY_TO_STRING() 函数,您可以将 ARRAY 转换为单个 STRING 值,或者将 ARRAY 转换为单个 BYTES 值,其中,生成的值是有序连接的数组元 ...

  7. java 静态 二维数组 转化hashmap_将一个二维数组转换为 hashmap 哈希表

    /** * 将一个二维数组转换为 hashmap * * 如果省略 $val 参数,则转换结果每一项为包含该项所有数据的数组. * * @param array $arr * @param strin ...

  8. php把400个数组建二维,请教怎么将多维数组转换为二维数组

    请问如何将多维数组转换为二维数组? 比如无限级菜单,通过递归后是一个多维数组,我想把这个多维数组转换为二维数组并重新排序后进行foreach,请问这个function该如何写? ------解决方案- ...

  9. 把一个一维数组转换为in ()

    把一个一维数组转换为in()形式. function dbCreateIn($itemList) {if(empty($itemList )){return " IN ('') " ...

  10. ITK:将数组转换为图像

    ITK:将数组转换为图像 内容提要 输出结果 C++实现代码 内容提要 将C样式的数组转换为itkImage. 输出结果 C++实现代码 #include "itkImage.h" ...

最新文章

  1. [译] 在 Facebook 发一张登机牌,你就有可能被盗号了
  2. WordPress podPress插件‘playerID’参数跨站脚本漏洞
  3. C语言 __cplusplus - C语言零基础入门教程
  4. mybatis处理集合和循环数组问题
  5. python中的update是什么意思_python 字典中的Update()函数
  6. 团队-象棋游戏-成员简介及分工
  7. Fisher准则一维聚类
  8. php选择nginx还是apache,浅谈apache和nginx的rewrite的区别
  9. MySQL常用SQL总结
  10. Json扩展 (转)
  11. 阿里云创客+千人创投会 无人机项目夺冠
  12. JavaScript上传图片方式
  13. [Python]代码重复率查找工具Clone Digger
  14. 数独高阶技巧之八——SDC
  15. 华为云Centos7搭建hadoop集群一:云服务器准备
  16. vue实现浏览器桌面通知
  17. 大学生必知到的外国典故
  18. Python3 基础语法知识1
  19. 游戏策划---ACTIONGAME游戏设计(转)
  20. QuickRedis 是一款 Redis 可视化管理工具

热门文章

  1. [RK3288][Android6.0] 调试笔记 --- 播放搜狐视频会Crash问题
  2. 详解Vue中的自定义指令
  3. C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
  4. 与计算机相关的统计表格,统计信息化 Excel与SPSS应用pdf
  5. 【IoT】 产品设计与工艺:塑料表面处理工艺
  6. 昆明冶金职业技术学院计算机,昆明冶金高等专科学校官网
  7. 2015 2020 r4烧录卡 区别_2020版药典,药用辅料被重视了
  8. 2021年山东大学考研数字电路906真题
  9. 银行数据仓库体系实践(13)--数据应用之监管报送
  10. Robot Framework怎么导入selenium2library类库