这个是手册里的函数,是c++的代码
typedef struct
{
DWORD dwShowString; /* 预览的图象上是否显示字符,0-不显示,1-显示区域704*576,单个字符的大小为32*32 */
WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */
WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */
WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */
char sString[44]; /* 要显示的字符内容 */
}NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;typedef struct
{
DWORD dwSize;
NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /*要显示的字符内容 */
}NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;BOOL NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer,DWORD dwInBufferSize)
设置硬盘录像机的参数
参数说明:
lUserID:NET_DVR_Login ()的返回值
dwCommand:参数类型
lChannel:通道号,如果不是通道参数,lChannel不用,置为0即可
lpInBuffer:存放输入参数的缓冲区
dwInBufferSize:缓冲区的大小
返回值:TRUE表示成功,FALSE表示失败。#define NET_DVR_SET_SHOWSTRING 131 //设置叠加字符参数我是这么写的,帮忙看下对不对
public struct NET_DVR_SHOWSTRINGINFO
{
//编码端字符叠加配置结构
public int dwShowString;
public int wStringSize;
public int wShowStringTopLeftX;
public int wShowStringTopLeftY;
public string sString;
} public struct NET_DVR_SHOWSTRING
{
public int dwSize;
public NET_DVR_SHOWSTRINGINFO struStringInfo;
}//编码端叠加字符
[DllImport("HCNetSDK.dll")]
public static extern bool NET_DVR_SetDVRConfig(int lUserID, int dwCommand, int lChannel, IntPtr lpInBuffer, int dwInBufferSize);前端代码NET_DVR_SHOWSTRINGINFO _showstringinfo = new NET_DVR_SHOWSTRINGINFO();
NET_DVR_SHOWSTRING _showstring = new NET_DVR_SHOWSTRING();label1.Text = "姓名:" + CarList[i].xm;
_showstringinfo.dwShowString = 1;
_showstringinfo.wStringSize = label1.Text.Trim().Length;
_showstringinfo.wShowStringTopLeftX = 50;
_showstringinfo.wShowStringTopLeftY = 50;
_showstringinfo.sString = label1.Text.ToString();
_showstring.dwSize = Marshal.SizeOf(_showstringinfo);
_showstring.struStringInfo = _showstringinfo;
IntPtr stringinfostr = Marshal.AllocHGlobal(Marshal.SizeOf(_showstring));
Marshal.StructureToPtr(_showstring,stringinfostr,true);
if (Hik_HCNetSDK.NET_DVR_SetDVRConfig(LoginHandle1, 131, 0, stringinfostr, Marshal.SizeOf(stringinfostr)))
{
MessageBox.Show("叠加成功");
}
typedef struct
{
DWORD dwShowString; /* 预览的图象上是否显示字符,0-不显示,1-显示区域704*576,单个字符的大小为32*32 */
WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */
WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */
WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */
char sString[44]; /* 要显示的字符内容 */
}NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;typedef struct
{
DWORD dwSize;
NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /*要显示的字符内容 */
}NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;BOOL NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer,DWORD dwInBufferSize)
设置硬盘录像机的参数
参数说明:
lUserID:NET_DVR_Login ()的返回值
dwCommand:参数类型
lChannel:通道号,如果不是通道参数,lChannel不用,置为0即可
lpInBuffer:存放输入参数的缓冲区
dwInBufferSize:缓冲区的大小
返回值:TRUE表示成功,FALSE表示失败。#define NET_DVR_SET_SHOWSTRING 131 //设置叠加字符参数我是这么写的,帮忙看下对不对
public struct NET_DVR_SHOWSTRINGINFO
{
//编码端字符叠加配置结构
public int dwShowString;
public int wStringSize;
public int wShowStringTopLeftX;
public int wShowStringTopLeftY;
public string sString;
} public struct NET_DVR_SHOWSTRING
{
public int dwSize;
public NET_DVR_SHOWSTRINGINFO struStringInfo;
}//编码端叠加字符
[DllImport("HCNetSDK.dll")]
public static extern bool NET_DVR_SetDVRConfig(int lUserID, int dwCommand, int lChannel, IntPtr lpInBuffer, int dwInBufferSize);前端代码NET_DVR_SHOWSTRINGINFO _showstringinfo = new NET_DVR_SHOWSTRINGINFO();
NET_DVR_SHOWSTRING _showstring = new NET_DVR_SHOWSTRING();label1.Text = "姓名:" + CarList[i].xm;
_showstringinfo.dwShowString = 1;
_showstringinfo.wStringSize = label1.Text.Trim().Length;
_showstringinfo.wShowStringTopLeftX = 50;
_showstringinfo.wShowStringTopLeftY = 50;
_showstringinfo.sString = label1.Text.ToString();
_showstring.dwSize = Marshal.SizeOf(_showstringinfo);
_showstring.struStringInfo = _showstringinfo;
IntPtr stringinfostr = Marshal.AllocHGlobal(Marshal.SizeOf(_showstring));
Marshal.StructureToPtr(_showstring,stringinfostr,true);
if (Hik_HCNetSDK.NET_DVR_SetDVRConfig(LoginHandle1, 131, 0, stringinfostr, Marshal.SizeOf(stringinfostr)))
{
MessageBox.Show("叠加成功");
}
请参照我的写 public struct NET_DVR_SHOWSTRINGINFO
{
//编码端字符叠加配置结构
public int dwShowString;
public ushort wStringSize;
public ushort wShowStringTopLeftX;
public ushort wShowStringTopLeftY;
public char[44] sString;
} int = DWORD
ushort = WORD
char = byte
等
请LZ 重新更改。。
(PS:我也是做有关视频的)