C#视频监控系列(14):总结贴——VC++代码转成C#小结

前言

原计划是再写一篇H264播放器转换AVI的文章才开始写总结的,至今未能成功,由于时间问题并且也暂时没有这个需求,所以决 定从原计划中去掉这一章节直接进入总结贴,然后结束这个系列文章。如果公司这边不出什么意外,可能稍候1-2月会把后续的功能作为本系列 的续集来分享给大家,请谅解!

正文

1.使用Marshal.AllocHGlobal(使用 GlobalAlloc 从进程的非托管内存中分配内存)创建 IntPtr,用完之后记得用Marshal.FreeHGlobal释放内存,否则如此该方法处在在一个无限循环中将不断分配内存,直至内存耗尽。

2. 数据类型

2.1 结构体传输一般都会加上ref

VC++:

int __stdcall StartVideoPreview(HANDLE hChannelHandle,HWND WndHandle,  RECT *rect,BOOLEAN bOverlay, int VideoFormat, int FrameRate)

C#:

public static extern int StartVideoPreview(IntPtr hChannelHandle, IntPtr WndHandle,ref Rectangle rect, bool bOverlay, int VideoFormat, int FrameRate);

注:RECT和Rectangle均为结构体

2.2   指针 类型

VC++:   HWND、HANDLE  

C#:   IntPtr 一般是取控件窗体的句柄  Panel.Handle

2.2   颜色

VC++:   COLORREF

C#:   int   Color.FromArgb(255, 0, 255).ToArgb()

2.3   传出参数

VC++:   int*/ULONG */DWORD *    

C#:   out int/out long/out ushort 等

VC++里面的int、long数据类型与C#转换的时候并不 严格,只要不超过范围就行,所以有的地方用int也可以、用long也可以。

时间: 2024-08-07 12:22:22

C#视频监控系列(14):总结贴——VC++代码转成C#小结的相关文章

C# 视频监控系列

C#视频监控系列(15):总结贴--可能用到的C# WinForm技术小结 C#视频监控系列(14):总结贴--VC++代码转成C#小结 C#视频监控系列(13):H264播放器--控制播放和截图 C#视频监控系列(12):H264播放器--播放录像文件 C#视频监控系列(11):H264播放器--封装API[HikPlayM4.dll] C#视频监控系列(10):服务器端 - 验证.设置画面质量.字幕叠加 C#视频监控系列(8):服务器端--预览和可被客户端连接 C#视频监控系列(7):服务器

C# 视频监控系列 序 [完]

前言      对于视频监控系统大家应该是不陌生的,实施的路况信息.地铁.银行柜台.大型商场.监狱等等场景都能看到它的影子.而当前关于视频监控的开发仍然是以VC++和Delphi为主,本系列文章将完整展示从采购到用C# WinForm技术实现所有功能和步骤.   注意      本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心.实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)  

C# 视频监控系列(10):服务器端——验证、设置画面质量、字幕叠加、板卡序列号

前言      本章将服务器端几个非主要但常用的功能分享一下.   注意      本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心.实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)   系列      1.     C# 视频监控系列(1):准备      2.     C# 视频监控系列(2):客户端--封装API      3.     C# 视频监控系列(3):客户端--连

C#视频监控系列(6):服务器端——封装API(上) [HikServer.dll]

前言 写系列文章的时候[前言]部分变得无言了,可能来得顺利了点吧: ) 本章中提供的封装均是我用笨办法从<<Hikvision 板卡网络开发包编程手册V4.7>>和<<DS-4000HC.HCS.HC+.HF.HS.MD卡的Windows编程指南V4.3>>中拷贝出来并参照 VC++代码进行整理的,主要是针对HikServer.dll和DS40xxSDK.dll的调用封装. 正文 1.HikServer.dll using System; using Sys

C# 视频监控系列(1):准备

前言 偶尔的机会接触视频监控,一开始的也是无头苍蝇,买书,跑了几趟中关村买设备,找朋友帮忙接线,测试摄像头,总算是把 海康SDK开发包里面的示例跑起来了!接下来又在源码网站.用Google疯狂的找代码,不是VC++的就是Delphi的源码(本人Delphi不会,VC++能 看懂点点-_-#),最后算是找到了一个C#版开发的客户端文章,结果运行出错!跑到海康官方网站问也没人鸟,怒了!!冷静下来看自带的 VC++客户端代码,看得出他也是调用的标准接口,只是使用VC++来调罢了,所以想干脆直接把自带V

C#视频监控系列(11):H264播放器——封装API[HikPlayM4.dll]

前言 当你认真的写完客户端和服务器端的时候可能不需要再继续往下看关于播放器的代码和说明,因为你已经掌握了如何转换VC++ 代码的技巧了,加上GOOGLE再来完成这个播放器应该算小菜了.但是作为我的系列,我还是有必要认真的将这部分写完才算完整,和前面一样 ,先贴封装好的API. 正文 HikPlayM4.dll源码见附件 结束 和前面一样注意API可能存在误差,随后的文章将保持本文的更新!! 附件

C#视频监控系列(7):服务器端——封装API(下) [DS40xxSDK.dll]

前言 写系列文章的时候[前言]部分变得无言了,可能来得顺利了点吧: ) 本章中提供的封装均是我用笨办法从<<Hikvision 板卡网络开发包编程手册V4.7>>和<<DS-4000HC.HCS.HC+.HF.HS.MD卡的Windows编程指南V4.3>>中拷贝出来并参照VC++代码进行整理的,主要是针对HikServer.dll和DS40xxSDK.dll的调用封装. 正文 1.DS40xxSDK.dll 代码详见源码 本文配套源码

C#视频监控系列(12):H264播放器——播放录像文件

前言 本章主要实现播放海康录像文件,更多播放器说明可以参考<Hikvision H264播放器编程指南V4.8>. 先来一张简单的效果图 以下几个VC++ 代码 片段: CPlayerDlg::OnInitDialog() Hik_PlayM4_SetVolume(PORT,m_SoundSlider.GetPos()); // 其他代码 //set the capture picture call back function; Hik_PlayM4_SetDisplayCallBack(PO

C# 视频监控系列(2):客户端——封装API

前言 本章主要是在C#封装的海康DVR客户端SDK 的代码上修改的,并参考<Hikvision 板卡网络开发包编程手册V4.7.pdf>补上更完 整的注释,并且参照VC++源码做了小部分修改. 参考 1.C#封装的海康DVR客户端SDK 注意 本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心.实现以 及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答评论里的每一个问题,感谢大家关注,欢迎交流 :) 正文 本章主 要是贴封装好的API调