问题如下:

建立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 静态数据成员的定义”的问题相关推荐

  1. Qt使用导出类报错:error C2491: “ZMapWidget::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义

    在使用一个继承自QObject带有Q_OBJECT宏的导出类时,编译报错:不允许 dllimport 静态数据成员 的定义. 原因是自动生成的moc文件带有静态函数,无法导出. 1.在Qt中的解决办法 ...

  2. Qt使用导出类报错:error C2491: “LmcThreadPaddle::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义

    Qt使用导出类报错:error C2491: "LmcThreadPaddle::staticMetaObject": 不允许 dllimport 静态数据成员 的定义 在使用继承 ...

  3. VS---不允许 dllimport 静态数据成员的定义

    1.QT的Q_OBJECT包含静态数据定义: #define Q_OBJECT \ public: \QT_WARNING_PUSH \Q_OBJECT_NO_OVERRIDE_WARNING \st ...

  4. qt 不允许 dllimport 静态数据成员 的定义_C++类和对象的定义

    想用机器人赋能未来,少不了扎实的编程基本功,让我们跟着清华大学的C++语言程序课程一起过一遍C++的语法知识吧! C++语言特点--面向对象的程序设计 对象是现实中的对象在程序中的模拟,类是同一类对象 ...

  5. 类静态数据成员的定义及初始化

    #include <iostream> using namespace std; /* 在 C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有 对象共用.所以在所 ...

  6. 不能定义声明dllimport_不允许 dllimport 静态数据成员

    View Code "CTest::~CTest" : 不允许 dllimport 函数 的定义 "CTest::CTest" : 不允许 dllimport ...

  7. (C++题目)定义一个描述学生基本情况的类Student,数据成员包括姓名、学号、英语成绩和高数成绩;成员函数包括构造函数、析构函数、获取姓名、获取学号、求出平均成绩,以及显示各

    定义一个描述学生基本情况的类Student,数据成员包括姓名.学号.英语成绩和高数成绩:成员函数包括构造函数.析构函数.获取姓名.获取学号.求出平均成绩,以及显示各科成绩和平均成绩的显示函数.编写ma ...

  8. cpp课程设计实验题:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(coun

    CPP实验题:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name).学号(num).数学成绩(mathScore).英语成绩(englishScore).人数(count).数 ...

  9. 实现客户机(Client)类声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户机数量;定义静态函数成员ChangeServerName

    实现客户机(Client)类.声明字符型静态数据成员ServerName,保存其服务器名称:整型静态数据成员ClientNum,记录已定义的客户机数量:定义静态函数成员ChangeServerName ...

最新文章

  1. ORA-00942:表或视图不存在(低级错误)
  2. mysql 怎么查询结果补0_mysql查询连续时间数据——无数据补0
  3. 为什么某些订单的参与者Participant无法被删除
  4. 树莓派控制电机转速_怎样用树莓派控制直流电机的方向和速度
  5. 数列分段Section I(洛谷-P1181)
  6. 玩冒险岛java卸载_如何删除冒险岛安装了,现在不想玩
  7. 从技术、服务到共创 声网 Agora 携手合作伙伴共建 RTC 生态
  8. 千牛机器人回复词库_千牛机器人自动回复语大全
  9. ssm医院人事管理系统设计与实现 毕业设计源码111151
  10. 三星固态性能测试软件,三星850 EVO 120G固态硬盘评测——性能测试与保养
  11. speedoffice(Excel)如何隐藏编辑栏
  12. 简支梁挠度计算公式推导_简支梁的最大挠度计算公式 l.ppt
  13. 程序员需知的9个编程学习官网,建议收藏
  14. Eclips注释模板的使用
  15. 树莓派/图像/人脸识别
  16. 计算机二级长春光华学院,长春光华学院排名2021 吉林排名第3全国排名第73
  17. TP5后端,VUE前端请求聚合数据成语大全
  18. 用计算机计算出爱情数字,用数字表示爱情的密码 数字代表的爱情含义大全
  19. 龙芯2F内核损坏解决办法
  20. 针对美国国家安全局“酸狐狸”漏洞攻击武器平台的分析与应对方案建议

热门文章

  1. PMBOK 第六版 识别风险:工具与技术——提示清单
  2. airpods pro是按压还是触摸_苹果三代耳机是触摸还是按键
  3. 移动咪咕PHP代理源码,咪咕视频解析源码
  4. 千锋培训的python怎么样学习内容有什么?
  5. [Games104笔记] 游戏中的渲染管线,后处理
  6. Poi实现Excel导出
  7. wdr7300千兆版和百兆版区别_tl-wdr7300是百兆还是千兆
  8. Python快速入门(八)面向对象1:类、对象和封装
  9. Cadence Allegro PCB各层含义
  10. 【李开复】成功、自信、快乐(三)