C++ Windows DLL项目同时导出类、函数和变量(dllexport和dllimport)

使用Visual Studio建立新的library项目,就可以知道怎么做了。

头文件:

// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 PROJECT1_EXPORT
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// PROJECT1_API 函数视为自 DLL 导入,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef PROJECT1_EXPORTS
#define PROJECT1_API __declspec(dllexport)
#else
#define PROJECT1_API __declspec(dllimport)
#endif

// 此类导出自 Project1.dll
class PROJECT1_API CProject1 {
public:
    CProject1(void);
    // TODO:  在此添加您的方法。
};

extern PROJECT1_API int nProject1;

PROJECT1_API int fnProject1(void);

源文件:

    // Project1.cpp: 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "Project1.h"


// 这是导出变量的一个示例
PROJECT1_API int nProject1=0;

// 这是导出函数的一个示例。
PROJECT1_API int fnProject1(void)
{
    return 42;
}

// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 Project1.h
CProject1::CProject1()
{
    return;
}

Exporting C++ from dlls写的也很不错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容