c++ - 使用 (c++11) 声明类型时将 __declspec(dllimport) 关键字放在哪里

标签 c++ c++11

<分区>

我通常看到 C++11 关键字 using 作为类型声明。

我想让共享库 (dll) 的用户可以看到该类型。

所以(对于 Windows)我用 __declspec(dllimport) 导出它。

__declspec(dllimport) using History = std::list<Event>; //this code is wrong

但是我不知道放在哪里。我只得到错误。

最佳答案

__declspec(dllimport) 不是类型的一部分,因此您不能将其放在 using 声明中。

一个习惯的做法是:#define IMPORT __declspec(dllimport) 并将IMPORT放在每个函数原型(prototype)的前面。也可以使用条件编译将 IMPORT 定义为 DLL 中的 __declspec(dllexport)

关于c++ - 使用 (c++11) 声明类型时将 __declspec(dllimport) 关键字放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57808274/

相关文章:

c++ - rtsp 流中的 h.264 I 帧丢失处理

c++ - 通过 operator new 定义简单对象工厂的正确语法

c++ - pretty-print std::tuple

c++ - Glibc vs GCC vs binutils 兼容性

c++ - 表达式无法识别函数c++中的指针

c++ - 外部进程与线程和数据处理

c++ - 为什么不修改关联容器的键?

c++ - Cygwin 终端 GDB 列表功能不起作用

c++ - 如何检测通用 lambda 在 C++ 14 中是否不可编译?

c++ - 该表达式在 C++ 中意味着什么