107得票4回答
__declspec(dllimport) 真正的含义是什么?

我看到Qt的源代码是这样的:class Q_CORE_EXPORT QBasicAtomicInt { public: ... }; 哪个 Q_CORE_EXPORT 宏定义的内容如下:define Q_DECL_IMPORT __declspec(dllimport) 那么__declspe...

24得票2回答
正确的方法链接静态库和动态链接库

我的项目通过几个静态库进行构建,这些库应该链接到主dll库中,以便作为结果获得一个单一的dll。 使用__declspec(dllexport)属性不会导致静态库的指定函数出现在dll中,根本没有将库链接到dll。 然后我尝试将每个库构建为共享库,以获取导出函数的正确名称,并基于它们创建....

12得票2回答
`__declspec(align(#))`是如何工作的?

是的,我已经阅读了这篇文章:http://msdn.microsoft.com/en-us/library/83ythb65.aspx。但是它对我来说并不清楚。首先,__declspec(align(#)) 使得用它声明的所有对象(在一个结构体中)都从一个对齐的偏移量开始。这部分很清楚。该对齐...

8得票1回答
Windows在MinGW和MSVS下导出/导入符号;CMake中的WINDOWS_EXPORT_ALL_SYMBOLS被忽略。

使用Visual Studio构建C库的CMake命令 set(WINDOWS_EXPORT_ALL_SYMBOLS ON) 这个工具使我不必在函数声明前面加上__declspec(dllexport)或__declspec(dllimport);只有全局变量需要显式导入/导出符号。 ...

8得票1回答
C/C++链接规范

当调用像copy_if、transform等C++算法时,这些算法的最后一个参数需要一个一元或二元函数,那么我能否传递一个C库函数,例如atoi或tolower。 例如,下面的调用可以正常工作并给出正确的输出(在ideone上尝试过) 1) transform (foo, foo+5, b...

7得票1回答
C++ [[gnu::visibility("default")]] 和 Windows、Linux上的 __declspec(dllexport) 的区别在哪里?

我需要在C++中创建一些共享库,并将linux作为我的开发操作系统。我知道如果想要通过dlsym/LoadLibrary加载它们,我需要使符号可见。因此,在linux中,我的所有符号都遵循这个模式: extern "C" [[gnu::visibility("default")]] void...