【C++】__declspec(dllexport)和__declspec(dllimport)的作用、__attribute__((visibility(“default“)))

参考:https://blog.csdn.net/yaotuzhi/article/details/108037549

C++工程源码,在其头文件里,经常有__declspec(dllimport)这种形式的语句。不明白其含义,遂查阅资料。

首先要知道,头文件是C++的接口文件,不仅本工程需要使用头文件来进行编译,给其他工程提供dll的时候也要提供此dll的头文件才能让其他人通过编程的方式来使用dll。

注意: 头文件不仅要给自己用,还可能要给别人用。

使用方法: 头文件中声明了方法,在提供者那里方法应该被声明为__declspec(dllexport),在使用者那里,方法应该被声明为__declspec(dllimport)

比如一个项目中的Class中含有一个静态变量,生成dll的时候只采用了__declspec(dllexport) 如下:

dll工程,A.h:

  #define OS_API_EXPORT __declspec(dllexport)

  class OS_API_EXPORT A {
   

你可能感兴趣的:(C++,c++,mfc,windows)