以下是cpp中的代码:
#include "hk.h"
#include "ui_hk.h"
#include <QtGui/QWidget>
#include "QtGui"
#include "hcnetsdk.h"
#include <qstring.h>
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "stdint.h"
#include "unistd.h"
#include "time.h"
typedef unsigned int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;
#define USER_NAME "admin"
#define PASSWD "12345"
#define PORT 8000
int glUserID = -1;
#define LOCAL_IP "192.0.2.2"
#define LOCAL_PORT 7200
hk::hk(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
hk::~hk()
{
}
void hk::on_Button_close_clicked()
{
this->close();
}
int hk::on_Button_connect_clicked()
{
NET_DVR_DEVICEINFO devInfo;
// IP地址
char localip[16];
char serverip[16];
strcpy(ui.lineEdit_iplocal->text().toUtf8().data(),localip);
strcpy(ui.lineEdit_ipserver->text().toUtf8().data(),serverip);
//initialization
if(!NET_DVR_Init())
{
ui.lineEdit->setText(tr("HC Clientdemo Init failed"));
return -1;
}
else
{
ui.lineEdit->setText(tr("HC Clientdemo Init success!"));
}
//超时设置
if (!NET_DVR_SetConnectTime(5000, 3))
{
ui.lineEdit->setText(tr("connect out time! try again"));
return -1;
}
//set callback
// NET_DVR_SetDVRMessageCallBack(gfMessCallBack, (void*)1);
//监听
if(!NET_DVR_StartListen(localip, LOCAL_PORT))
{
ui.lineEdit->setText(tr("StartListen failed ... LastError[%d]"));
// printf("StartListen failed ... LastError[%d]\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return -1;
}
//UserID 获取
glUserID =NET_DVR_Login(serverip, PORT, USER_NAME, PASSWD, &devInfo);
if(glUserID < 0)
{
ui.lineEdit->setText(tr("Login DVR failed ... LastError[%d]"));
//printf( "Login DVR failed ... LastError[%d]\n", NET_DVR_GetLastError() );
NET_DVR_StopListen();
NET_DVR_Cleanup();
return -1;
}
}
#include "hcnetsdk.h"我所需要调用的函数都在这个头文件里面了。
调用的函数有:
NET_DVR_Init()
NET_DVR_SetConnectTime(5000, 3)
NET_DVR_StartListen(localip, LOCAL_PORT)
NET_DVR_Login(serverip, PORT, USER_NAME, PASSWD, &devInfo);
NET_DVR_StopListen();
NET_DVR_Cleanup();
编译的时候就报错,说以上几个函数就是没有定义undefined reference to上面几个函数,本人初学C++和QT
查看了下hcnetsdk.h,该头文件是BOSS给我的一个SDK那里复制过来的。头文件里面有关的信息如下:
NET_DVR_API BOOL NET_DVR_Init();
NET_DVR_API BOOL NET_DVR_Cleanup();
NET_DVR_API BOOL NET_DVR_SetDVRMessCallBack(BOOL ( *fMessCallBack)(int lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen));
NET_DVR_API BOOL NET_DVR_SetConnectTime(DWORD dwWaitTime,DWORD dwTryTimes);
NET_DVR_API BOOL NET_DVR_StartListen(char *sLocalIP,WORD wLocalPort);
NET_DVR_API BOOL NET_DVR_StopListen();
NET_DVR_API int NET_DVR_Login(char *sDVRIP,WORD wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);
有高手帮我看看是哪里错了么。。。或者说,怎么正确将头文件中的函数调用到实现文件cpp中?