Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Q_DECL_导出关键字含义_C++_Blackberry 10 - Fatal编程技术网

C++ Q_DECL_导出关键字含义

C++ Q_DECL_导出关键字含义,c++,blackberry-10,C++,Blackberry 10,Q\u DECL\u导出int main(int argc,char**argv) 在intmain(…)之前,这是什么意思 它不是一个关键字,它是一个宏,用于封装不同的编译器特定关键字,以将函数声明为导出的 另见和 它通常与库一起使用,用于定义需要从库中导出的函数,以便由其他库或可执行文件导入(“使用”) 到目前为止,我还没有在main功能中看到这一点,但这可能是黑莓特有的功能。另一方面,这也不会将宏与main()函数一起使用,因此它可能会被删除。摘自: 根据您的目标平台,Qt提供了特殊的宏

Q\u DECL\u导出int main(int argc,char**argv)


intmain(…)
之前,这是什么意思

它不是一个关键字,它是一个宏,用于封装不同的编译器特定关键字,以将函数声明为导出的

另见和

它通常与库一起使用,用于定义需要从库中导出的函数,以便由其他库或可执行文件导入(“使用”)

到目前为止,我还没有在
main
功能中看到这一点,但这可能是黑莓特有的功能。另一方面,这也不会将宏与
main()
函数一起使用,因此它可能会被删除。

摘自:

根据您的目标平台,Qt提供了特殊的宏 包含必要的定义:

  • Q_DECL_导出必须添加到编译共享库时使用的符号声明中
  • 编译使用共享库的客户端时,必须将Q_DECL_导入添加到所用符号的声明中
我没有检查QT代码,但该宏很可能会执行以下操作:

#ifdef _WIN32 || _WIN64
    #define Q_DECL_EXPORT __declspec(dllexport)
    #define Q_DECL_IMPORT __declspec(dllimport)
#else
    #define Q_DECL_EXPORT
    #define Q_DECL_IMPORT
#endif
\uuu declspec(dllimport)
\uu declspec(dllexport)
告诉链接器分别从DLL导入和导出符号。这是Windows特有的

在您的特定情况下,此宏可能会被删除,因为
main()
很可能不是库的一部分。

Q\u DECL\u EXPORT main()
在为Android构建Qt应用程序时是必需的,因为本机Android应用程序是作为库从引导Java代码加载的。我不知道黑莓手机下可能也有类似的情况。