使用__declspec(dllexport)

时间:2018-02-25 18:49:03

标签: c++ dllexport

您好我与dllexport有点混淆。当我在课程中使用__declspec(dllexport)时

Project ERROR: Unknown module(s) in QT: contacts

我将C类导出到dll文件还是从dll文件导出C类?

1 个答案:

答案 0 :(得分:0)

编译DLL时,您必须像以前那样编写__declspec(dllexport)。这告诉编译器您希望将其导出。使用DLL时,您要在包含的文件中使用__declspec(dllimport)。然后,编译器知道此函数和类在DLL文件中,需要导入。由于您不想太多更改头文件,因此应定义一个宏,例如BUILD_DLL

    #ifdef BUILD_DLL
    #define DLL_PORTING __declspec(dllexport)
    #else
    #define DLL_PORTING __declspec(dllimport)
    #endif

现在您在example.h中编写:

    class DLL_PORTING example_class { … };

在您的.exe文件中,仅包含您需要的头文件,一切都会正常工作。