海康威视 windows64系统 C++网络摄像头测试Demo

win64系统 VS2010创建 海康Demo:
首先需要取官网下载对应系统的SDK,官网地址为: http://www.hikvision.com/cn/download_61.html
新建项目 win32控制台程序,填上项目名称,设置为空项目,
海康威视 windows64系统 C++网络摄像头测试Demo_第1张图片
SDK中的内容如下所示:
海康威视 windows64系统 C++网络摄像头测试Demo_第2张图片
查看SDK中的注意事项:
更新设备网络SDK时,SDK开发包【库文件】里的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom文件夹等文件均要加载到程序里面,【HCNetSDKCom文件夹】(包含里面的功能组件dll库文件)需要和HCNetSDK.dll、HCCore.dll一起加载,放在同一个目录下,且HCNetSDKCom文件夹名不能修改。
可知我们需要将库文件和头文件中的所有文件都复制到项目目录下,在解决方案中对项目右键打开项目所在的文件夹把头文件后库文件都复制到此目录下:
海康威视 windows64系统 C++网络摄像头测试Demo_第3张图片
在源文件中添加一个cpp文件,cpp文件中内容如下所示:
#include
#include
#include
#include "HCNetSDK.h"
#include

#pragma comment(lib, "user32.lib")
using namespace std;

typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser)
{
char tempbuf[256] = {0};
switch(dwType)
{
case EXCEPTION_RECONNECT: //预览时重连
printf("----------reconnect--------%d\n", time(NULL));
break;
default:
break;
}
}

void main() {
//---------------------------------------
// 初始化
NET_DVR_Init();
//设置连接时间与重连时间
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
//设置异常消息回调函数
NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);

//---------------------------------------
// 注册设备
LONG lUserID;

//登录参数,包括设备地址、登录用户、密码等
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
struLoginInfo.bUseAsynLogin = 0; //同步登录方式
strcpy(struLoginInfo.sDeviceAddress, "192.168.50.109"); //设备IP地址
struLoginInfo.wPort = 8000; //设备服务端口
strcpy(struLoginInfo.sUserName, "admin"); //设备登录用户名
strcpy(struLoginInfo.sPassword, "cqhh1234567"); //设备登录密码
//设备信息, 输出参数
NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};

lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
if (lUserID == -1)
{
printf("Login failed, error code: %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}else cout<<"login success :"<

//注销用户
BOOL logoutValue = NET_DVR_Logout(lUserID);
//释放SDK资源
NET_DVR_Cleanup();
system("pause");

return;
}
此时可以看到cpp文件中引用了HCNetSDK.h文件,因此在向项目中添加HCNetSDK.h头文件:
此时运行程序应该会报错,我的环境上不知道什么原因新建的项目都会出现如下所示的错误
>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
这个错误将项目属性的配置属性->清单工具-》输入和输出-》嵌入清单选项改为”否“即可:
海康威视 windows64系统 C++网络摄像头测试Demo_第4张图片
再次运行程序发现是在程序连接时期发生了error LNK2019: 无法解析的外部符号 错误,
海康威视 windows64系统 C++网络摄像头测试Demo_第5张图片
再修改两个地方即可,
(1)将debug模式由32位的改成64位
点击debug右侧的win32的下拉,选择配置管理器,在解决方案平台中选择“新建”选项
海康威视 windows64系统 C++网络摄像头测试Demo_第6张图片
在新建的解决方案中选择x64即可
海康威视 windows64系统 C++网络摄像头测试Demo_第7张图片
(2)添加依赖库
在项目属性中的连接器的输入中添加附加依赖项:HCNetSDK.lib HCCore.lib
海康威视 windows64系统 C++网络摄像头测试Demo_第8张图片

修改: 添加依赖项可以在程序的using namespace std;后添加一条: #pragma comment(lib,"HCNetSDK.lib"); 即可。
运行程序即可得到如下图所示的结果则表示登录成功(登录方式同步方式):
海康威视 windows64系统 C++网络摄像头测试Demo_第9张图片

你可能感兴趣的:(C++)