解决方案 »
- 在线等winform如何实现权限的划分呢?
- gridview 分页转跳后看不到下面 "第一页"等标记
- 请教一个简单的datalist控件的数据绑定问题
- .net winform下 如何在picturebox控件加载有图片的基础上,在图片上加动态多个点
- Buttons里面如何自动打开回收站&&网上邻居呢
- 请问:向xml文件中添加一个节点应该如何解决呢??
- Windows Workflow Foundation 可以用于web页面上吗????
- IBatisNet应用
- 为什么我在C#中生成的htm是乱码,在txt中却是正常汉字呢!
- 为何设了PrimaryKey运行出错说没有设?哪里不对?
- c#图像处理如何修改一张图片的采样率
- C#中如何打开一篇Word并对其操作进行评分
http://q.cnblogs.com/q/6245/
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));
}如果用c#写,不知道怎么写才对。对c++不了解,所以不知道 LPARAM lp的内容是怎么获取的,请大神指教。
只能调用C风格的普通函数。
个人理解lz的代码,是对传入的byte*(也就是byte数组)进行解析,
要调用,先改写一下
//这样就转换到你c#可以操作的数据类型然后来读取内容,
//我不知道这个在你那里能否适用,因为PtrToStructure并不是所有情况都适用,如果用这个方法的话具体可以看看MSDN
(StructureType)Marshal.PtrToStructure((IntPtr)((uint)(pbyMsg + sizeof(uint) * 2 + i * Marshal.SizeOf(typeof(StructureType)))), typeof(StructureType));谢谢各位