1. DLL工程创建
我们在封装dll接口的时候,在vs创建工程时选的应用程序类型选的是“DLL”,在附加项中选择“空项目”(也可不选,让vs给自动定义一些.h和.cpp),此时即可创建一个空的工程,没有任何.h和.cpp。此时查看项目的“配置属性--C/C++--预处理器--预处理器定义”,可发现vs已帮我们默认定义以下宏,如图所示
WIN32
_DEBUG_WINDOWS
_USRDLL
****_EXPORTS(即:工程名称_EXPORTS)
**dll.h头文件的自己定义,在头文件中添加以下代码:
#pragma once
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 ABSTRACTVIDEODATAAPPLICATIONDLL_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// ABSTRACTVIDEODATAAPPLICATIONDLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef ***_EXPORTS //***是工程名称的大写
#define ***_API extern "C" __declspec(dllexport) //***是工程名称的大写 该语句的含义是:用宏***_API 来表示 exte