C++明明引用了类的头文件,但是不识别类类型

FD_2013 FD_2013 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

//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),对于其中重复的数字,只保留一个,把其余相同的数去掉,

nihaoa1892737

CVPR2014 程明明论文源码

【CVPR2014 程明明论文源码】是一个与计算机视觉领域相关的资源,主要涉及2014年计算机视觉大会(CVPR)上发表的研究工作,由作者程明明分享的源代码。

AlexGau1991

RC_C++.rar_显著性 RC_显著性检测 HC_程明明_程明明 HC_程明明RC

显著性检测的代码,是程明明在12年的CVPR的文章,HC,RC的算法源码。

邓凌佳

c++课件PPT课件.pptx

为了把运算符从头到脚地看个明明白白,我们创建一个新类:计数器类 CCounter,逐步地根据需求来完善此类,并进一步地解释为什么要重载运算符以及如何来重载。

加油学习加油进步

C++命名空间与头文件包含:避坑指南与工程实践

在C++开发中,命名空间和头文件包含是构建大型项目的基石。命名空间通过作用域隔离解决了符号名冲突问题,其核心原理是为标识符添加限定前缀,避免全局污染。头文件包含则基于C++编译单元的预处理机制,直接影响编译依赖和构建效率。良好的命名空间设计能提升代码的可读性和模块化程度,而科学的头文件管理则能显著减少编译时间并避免循环依赖。在实际工程中,合理使用命名空间(如避免在头文件中使用using指令、善用匿名命名空间)和遵循头文件包含顺序原则(从具体到通用),是保证项目健壮性的关键。本文聚焦于C++工程实践中常见的编

weixin_33795743
评论 15
收藏 已收藏
分享
返回顶部
FD_2013
C++ 语言 65,214 成员 250,514 内容