这个是手册里的函数,是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("叠加成功");
}

解决方案 »

  1.   

    不对
    请参照我的写    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:我也是做有关视频的)