c++的写法是这样的:
LRESULT CPictureQueryDlg::OnQueryPicNty(WPARAM wp, LPARAM lp)
{
EnableWindow(TRUE);

BYTE *pbyMsg = (BYTE*)lp;

// 得到当前页数目
m_dwCurCount = *reinterpret_cast<DWORD*>(pbyMsg);
// 得到总数量
m_dwTotalCount = *reinterpret_cast<DWORD*>(pbyMsg + sizeof(DWORD));

// 得到查询结果指针
TNVR_PIC_GRABTASK* ptResultQuery = reinterpret_cast<TNVR_PIC_GRABTASK*>(pbyMsg + sizeof(DWORD)*2);
memset(m_atGrTask, 0, sizeof(TNVR_PIC_GRABTASK) * NVR_MAXNUM_RECORDQUERY);
memcpy(m_atGrTask, ptResultQuery, m_dwCurCount * sizeof (TNVR_PIC_GRABTASK));
}

已经拿到IntPtr了的话可以用类型强制转换获取IntPtr里的东西:

(要获取的类型)Marshal.PtrToStructure(ptr,typeof(要获取的类型));
//这样就转换到你c#可以操作的数据类型然后来读取内容,
//我不知道这个在你那里能否适用,因为PtrToStructure并不是所有情况都适用,如果用这个方法的话具体可以看看MSDN

主要是需要获得类型的长度,如果长度获得不准确,读到的数据就会有问题。
(StructureType)Marshal.PtrToStructure((IntPtr)((uint)(pbyMsg + sizeof(uint) * 2 + i * Marshal.SizeOf(typeof(StructureType)))), typeof(StructureType));

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text; namespace OpenCover.Framework.Communication
{
public interface IMarshalWrapper
{
T PtrToStructure<T>(IntPtr pinnedMemory);
void StructureToPtr<T>(T structure, IntPtr pinnedMemory, bool fDeleteOld);
} public class MarshalWrapper : IMarshalWrapper
{
public T PtrToStructure<T>(IntPtr pinnedMemory)
{
return (T)Marshal.PtrToStructure(pinnedMemory, typeof(T));
} public void StructureToPtr<T>(T structure, IntPtr pinnedMemory, bool fDeleteOld)
{
Marshal.StructureToPtr(structure, pinnedMemory, fDeleteOld);
}
}
}

c# 读取IntPtr 中的数据 z的更多相关文章

  1. c# 读取IntPtr 中的数据

    c++的写法是这样的:LRESULT CPictureQueryDlg::OnQueryPicNty(WPARAM wp, LPARAM lp){EnableWindow(TRUE); BYTE *p ...

  2. C# 读取Excel中的数据

    #region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name=&quo ...

  3. Python中如何读取xls中的数据

    要想读取EXCEL中的数据,首先得下载xlrd包,地址:https://pypi.python.org/pypi/xlrd  安装方法:下载解压后,利用windows  dos命令进入解压目录eg,c ...

  4. 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

    在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...

  5. 读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots

    读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots   以下为异常详细信息: Exception in thread &q ...

  6. sql 读取excel中的数据

    select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...

  7. java读取请求中body数据

    java读取请求中body数据 /** * 获取request中body数据 * * @author lifq * * 2017年2月24日 下午2:29:06 * @throws IOExcepti ...

  8. 使用Hive读取ElasticSearch中的数据

    本文将介绍如何通过Hive来读取ElasticSearch中的数据,然后我们可以像操作其他正常Hive表一样,使用Hive来直接操作ElasticSearch中的数据,将极大的方便开发人员.本文使用的 ...

  9. SpringBoot(十三)_springboot上传Excel并读取excel中的数据

    今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...

随机推荐

  1. 【重走Android之路】【番外篇】有关于null的一些知识点

    [重走Android之路][番外篇]有关于null的一些知识点   1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...

  2. Linux命令-dd

    dd命令用于指定大小的拷贝的文件或指定转换文件. 以下命令作用:将光驱设备拷贝成镜像文件 参数 if 输入的文件名称 参数 of 输出的文件名称 [root@localhost testA]# dd ...

  3. 5、java反射基础

    Class对象: Class对象记录了所有与类相关的信息,当类加载器从文件系统中加载.class文件到JVM中的同时会为每一个类创建一个Class对象.通过Class对象可以获取到类的属性.方法.构造 ...

  4. java读取某个文件夹下的所有文件

    import java.io.FileNotFoundException;import java.io.IOException;import java.io.File; public class Re ...

  5. c# 计算1-100之间的所有整数的和

    求1-100所有整数和: class Program { static void Main(string[] args) { ,); Console.WriteLine("1-100之间所有 ...

  6. [原]poj-2680-Choose the best route-dijkstra(基础最短路)

    题目大意: 已知n 个点,m条路线,s为终点:给出m条路线及其权值:给出w个起点,求最短路! 思路:基础的dijkstra,有向无环正权最短路,只要把终点和起点 reverse考虑便可. AC代码如下 ...

  7. 13.allegro 颜色设置[原创]

    1. -- 或者: 2. -- 3. -- 4. 5. 6. 7. 8. 9. 10. -- 11.颜色保存: -- 12. 板子做好后,visibility查看 13.飞线显示: --------- ...

  8. 51nod 1050 循环数组最大子段和 (dp)

    http://www.51nod.com/onlineJudge/questionCode.html#problemId=1050&noticeId=13385 参考:http://blog. ...

  9. itnesse实现api接口自动化测试学习

    上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接口测试的时候,就是只在浏览器里人工测试 ...

  10. CMS 垃圾回收日志

    CMS 垃圾回收日志 https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs http://www.blogjava.net/D ...