首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 視頻監控系列(二):客戶端 SDK 完整封裝(一)

     編輯:關於C語言

基於《海康板卡網絡開發包編程手冊 V4.7》與 VC++ Demo,完整封裝 `hikclient.dll` 核心 API,含結構體、枚舉、委托、37 個函數簽名。

核心定義


// 客戶端視頻信息結構
public struct CLIENT_VIDEOINFO {
    public byte m_bRemoteChannel;   // 服務端通道號
    public byte m_bSendMode;        // 網絡模式
    public byte m_nImgFormat;       // 0=主碼流 1=子碼流
    public string m_sIPAddress;     // 服務端 IP
    public string m_sUserName;      // 用戶名
    public string m_sUserPassWord;  // 密碼
    public bool m_bUserCheck;       // 是否驗證
    public IntPtr m_hShowVideo;     // 顯示窗口句柄
}

// 網絡模式枚舉
public enum SEND_MODE { UDPMODE=0, TCPMODE, MULTIMODE, DIALING, AUDIODETACH }

// 顯示模式枚舉
public enum DISP_MODE { NORMALMODE=0, OVERLAYMODE }

// 回調委托
public delegate void ReadDataCallBack(ulong channel, byte[] buffer, ulong size);
public delegate void CapPicFun(int handle, IntPtr pBuf, int size, int w, int h, int stamp, int type, int reserved);
public delegate void DrawFun(int handle, Graphics dc, int user);

關鍵 API 簽名節選

函數用途
MP4_ClientStartup初始化客戶端
MP4_ClientStart啟動預覽(含回調)
MP4_ClientStop停止預覽
MP4_ClientGetState獲取連接狀態
MP4_ClientStartCaptureFile開始錄像到文件
MP4_ClientSetCapPicCallBack設置截圖回調
MP4_ClientSavePicFile保存截圖為 BMP
MP4_ClientAudioStart/Stop音頻開關
MP4_ClientCommandtoServer發送字符串命令

封裝原則

  • 參數類型嚴格對應 VC++ 原型(`DWORD`→`uint`/`ulong`,`HWND`→`IntPtr`,`char*`→`string`/`IntPtr`)
  • 結構體用 `MarshalAs(UnmanagedType.ByValArray, SizeConst=64)` 封送固定長度陣列
  • 委托標註 `UnmanagedFunctionPointer(CallingConvention.StdCall)`
  • 詳細 XML 註釋對應原 VC++ 簽名
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved