C++明明引用了类的头文件,但是不识别类类型
//CameraClient.h
#ifndef _CAMERA_CLIENT_H__
#define _CAMERA_CLIENT_H__
#include <string.h>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
namespace CAMERA_VITRUAL {
typedef void(*user_callback_fun)(int addr, void* entity_in);
//Camera实体类
class CameraClient
{
public:
void set_user_callback_fun(user_callback_fun fun);
public:
CameraClient();
~CameraClient() throw ();
void close();
int init(const string& brokerURI, string& clientID);
private:
void cleanup();
private:
user_callback_fun m_userCallbackFun;
int m_x;
int m_y;
};
}
#endif
//CameraInterface.h
#ifndef _CAMERAINTERFACE_H__
#define _CAMERAINTERFACE_H__
#ifdef CAMCLIENT_EXPORTS
# define DLL_IMPORT_CAM __declspec (dllexport)
#else
# define DLL_IMPORT_CAM __declspec (dllimport)
#endif
#include "test_cfg.h"
namespace CAMERA_VITRUAL {
typedef void(*user_callback_fun)(int addr, void* entity_in);
class CamereClient;
//CamClient接口类
class DLL_IMPORT_CAM CameraInterface
{
public:
~CameraInterface();
static CameraInterface* get_instance();
public:
void set_user_callback_fun(user_callback_fun fun);
void close();
int init(const string& brokerURI, string& clientID);
protected:
CameraInterface();
private:
static CameraInterface* m_instace;
CamereClient* m_CamClient;
};
}
#ifdef __cplusplus
extern "C"
{
#endif
DLL_IMPORT_CAM void pub_entity_fun(int addr, void* entity_in); //发布
DLL_IMPORT_CAM void sub_entity_fun(int addr, void* entity_in); //订阅
#ifdef __cplusplus
}
#endif
#endif
//CameraClient.cpp
#include "CameraClient.h"
using namespace CAMERA_VITRUAL;
void CameraClient::set_user_callback_fun(user_callback_fun userCallbackFun)
{
m_userCallbackFun = userCallbackFun;
}
CameraClient::CameraClient()
{
m_x = 0;
m_y = 1;
}
CameraClient::~CameraClient() throw ()
{
cleanup();
}
void CameraClient::close()
{
cleanup();
}
int CameraClient::init(const string& brokerURI, string& clientID)
{
return 0;
}
void CameraClient::cleanup()
{
}
//CameraInterface.cpp
#include "CameraClient.h"
#include "CameraInterface.h"
using namespace CAMERA_VITRUAL;
CameraInterface* CameraInterface::m_instace = new CameraInterface();
CameraInterface* CameraInterface::get_instance()
{
return m_instace;
}
CameraInterface::CameraInterface()
{
m_CamClient = new CamereClient();
}
CameraInterface::~CameraInterface()
{
if (m_CamClient != NULL)
{
delete m_CamClient;
m_CamClient = NULL;
}
}
int CameraInterface::init(const string& brokerURI, string& clientID)
{
return m_CamClient->init(brokerURI, clientID);
}
void CameraInterface::close()
{
return m_CamClient->close();
}
void CameraInterface::set_user_callback_fun(user_callback_fun userCallbackFun)
{
return m_CamClient->set_user_callback_fun(userCallbackFun);
}
void pub_entity_fun(int addr, void* entity_in)
{
}
void sub_entity_fun(int addr, void* entity_in)
{
}
...全文
相关推荐
明明的随机数
Description明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,
CVPR2014 程明明论文源码
【CVPR2014 程明明论文源码】是一个与计算机视觉领域相关的资源,主要涉及2014年计算机视觉大会(CVPR)上发表的研究工作,由作者程明明分享的源代码。
RC_C++.rar_显著性 RC_显著性检测 HC_程明明_程明明 HC_程明明RC
显著性检测的代码,是程明明在12年的CVPR的文章,HC,RC的算法源码。
c++课件PPT课件.pptx
为了把运算符从头到脚地看个明明白白,我们创建一个新类:计数器类 CCounter,逐步地根据需求来完善此类,并进一步地解释为什么要重载运算符以及如何来重载。
C++命名空间与头文件包含:避坑指南与工程实践
在C++开发中,命名空间和头文件包含是构建大型项目的基石。命名空间通过作用域隔离解决了符号名冲突问题,其核心原理是为标识符添加限定前缀,避免全局污染。头文件包含则基于C++编译单元的预处理机制,直接影响编译依赖和构建效率。良好的命名空间设计能提升代码的可读性和模块化程度,而科学的头文件管理则能显著减少编译时间并避免循环依赖。在实际工程中,合理使用命名空间(如避免在头文件中使用using指令、善用匿名命名空间)和遵循头文件包含顺序原则(从具体到通用),是保证项目健壮性的关键。本文聚焦于C++工程实践中常见的编


