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);
}
}
}

最新文章

  1. MYSQL-5.5二进制包安装
  2. js-url打开方式
  3. PHP内核探索之变量(1)Zval
  4. Android 全屏显示的方法(不包含状态栏)
  5. Linux基础1
  6. 【Nginx】nginx 代理 Haproxy 怎么设置?
  7. ACM题目————图的广度优先搜索
  8. redis研究之watch
  9. Oracle 查询时间在当天的数据
  10. 使用jQuery实现tag便签去重效果
  11. jQuery extend函数详解
  12. 用CMD开启、关闭软件
  13. 使用fontawesome图标
  14. JavaWeb 后端 &lt;十一&gt; 之 DBUtils 框架 (基本使用 结果集 事务处理 对表读取)
  15. 自建MySQL5.6数据库查询优化
  16. @Autowired 基本介绍,有待丰富
  17. Debian 9 strech 安装 ROS lunar
  18. Thread线程相关方法详解
  19. Spatial Transformer Networks
  20. poj 1511 正向 反向 构两个图

热门文章

  1. WordPress主题制作教程7:引用其他php的方法
  2. IE内存泄露与无法回收研究小结
  3. IOS系统中使用zepto的live事件绑定不了的一个办法
  4. 下载安装和OpenCV匹配的Android开发环境
  5. 32-语言入门-32-Triangular Sums
  6. opencv实现KNN手写数字的识别
  7. 安全删除mysql binlog日志
  8. depth_write
  9. RIA技术
  10. POI刷新数据后的函数(公式)更新问题