c++dll导入导出宏定义,出现“无法定义dllimport 实体”和“不允许dllimport 静态数据成员的定义”的问题
问题如下:
建立dll项目后,在Api_Head.hpp头文件中,定义宏:
#ifndef API_HEAD_HPP #define API_HEAD_HPP
#ifdef API_DLL_COMPILATION
#define API_IMPORT_EXPORT __declspec(dllexport)
#else
#define API_IMPORT_EXPORT __declspec(dllimport)
#endif
class API_IMPORT_EXPORT CServerControl {
public:
static void init();
int fun();
private:
static std::map<const uint8_t, std::shared_ptr<IHelp>> mControl;
static std::mutex mControlMutx;
};
#endif
Api_Head.cpp中的定义如下:
#define API_DLL_COMPILATION(很重要)
#include “Api_Head.hpp”
std::map<const uint8_t, std::shared_ptr<IHelp>> mControl;
std::mutex mControlMutx;
在进行编译过程中mControl,与mControlMutx同时报错如下:
解决方法是在#include “Api_Head.hpp”前加上#define API_DLL_COMPILATION。
具体原因可以参考:https://docs.microsoft.com/zh-cn/cpp/cpp/using-dllimport-and-dllexport-in-cpp-classes?view=vs-2019
c++dll导入导出宏定义,出现“无法定义dllimport 实体”和“不允许dllimport 静态数据成员的定义”的问题相关推荐
- Qt使用导出类报错:error C2491: “ZMapWidget::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义
在使用一个继承自QObject带有Q_OBJECT宏的导出类时,编译报错:不允许 dllimport 静态数据成员 的定义. 原因是自动生成的moc文件带有静态函数,无法导出. 1.在Qt中的解决办法 ...
- Qt使用导出类报错:error C2491: “LmcThreadPaddle::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义
Qt使用导出类报错:error C2491: "LmcThreadPaddle::staticMetaObject": 不允许 dllimport 静态数据成员 的定义 在使用继承 ...
- VS---不允许 dllimport 静态数据成员的定义
1.QT的Q_OBJECT包含静态数据定义: #define Q_OBJECT \ public: \QT_WARNING_PUSH \Q_OBJECT_NO_OVERRIDE_WARNING \st ...
- qt 不允许 dllimport 静态数据成员 的定义_C++类和对象的定义
想用机器人赋能未来,少不了扎实的编程基本功,让我们跟着清华大学的C++语言程序课程一起过一遍C++的语法知识吧! C++语言特点--面向对象的程序设计 对象是现实中的对象在程序中的模拟,类是同一类对象 ...
- 类静态数据成员的定义及初始化
#include <iostream> using namespace std; /* 在 C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有 对象共用.所以在所 ...
- 不能定义声明dllimport_不允许 dllimport 静态数据成员
View Code "CTest::~CTest" : 不允许 dllimport 函数 的定义 "CTest::CTest" : 不允许 dllimport ...
- (C++题目)定义一个描述学生基本情况的类Student,数据成员包括姓名、学号、英语成绩和高数成绩;成员函数包括构造函数、析构函数、获取姓名、获取学号、求出平均成绩,以及显示各
定义一个描述学生基本情况的类Student,数据成员包括姓名.学号.英语成绩和高数成绩:成员函数包括构造函数.析构函数.获取姓名.获取学号.求出平均成绩,以及显示各科成绩和平均成绩的显示函数.编写ma ...
- cpp课程设计实验题:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(coun
CPP实验题:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name).学号(num).数学成绩(mathScore).英语成绩(englishScore).人数(count).数 ...
- 实现客户机(Client)类声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户机数量;定义静态函数成员ChangeServerName
实现客户机(Client)类.声明字符型静态数据成员ServerName,保存其服务器名称:整型静态数据成员ClientNum,记录已定义的客户机数量:定义静态函数成员ChangeServerName ...
最新文章
- ORA-00942:表或视图不存在(低级错误)
- mysql 怎么查询结果补0_mysql查询连续时间数据——无数据补0
- 为什么某些订单的参与者Participant无法被删除
- 树莓派控制电机转速_怎样用树莓派控制直流电机的方向和速度
- 数列分段Section I(洛谷-P1181)
- 玩冒险岛java卸载_如何删除冒险岛安装了,现在不想玩
- 从技术、服务到共创 声网 Agora 携手合作伙伴共建 RTC 生态
- 千牛机器人回复词库_千牛机器人自动回复语大全
- ssm医院人事管理系统设计与实现 毕业设计源码111151
- 三星固态性能测试软件,三星850 EVO 120G固态硬盘评测——性能测试与保养
- speedoffice(Excel)如何隐藏编辑栏
- 简支梁挠度计算公式推导_简支梁的最大挠度计算公式 l.ppt
- 程序员需知的9个编程学习官网,建议收藏
- Eclips注释模板的使用
- 树莓派/图像/人脸识别
- 计算机二级长春光华学院,长春光华学院排名2021 吉林排名第3全国排名第73
- TP5后端,VUE前端请求聚合数据成语大全
- 用计算机计算出爱情数字,用数字表示爱情的密码 数字代表的爱情含义大全
- 龙芯2F内核损坏解决办法
- 针对美国国家安全局“酸狐狸”漏洞攻击武器平台的分析与应对方案建议