DLL封装:灌水一篇
老板的项目近期要验收,它的模块要放在甲方的平台下测试,并跟多家单位进行PK,为了技术的保密性,必须对源代码进行封装,鄙人下午不幸被抓去干这个活儿。
于是网上查了一些资料,搞明白了怎么生成DLL、怎么在程序中声明接口。在被调用工程的头文件中这么声明:
class __declspec(dllexport) module
表示module类被导出。在顶层调用这个module类的时候,这么声明:
#pragma comment(lib,"module.lib")
.......
class __declspec(dllimport) module
表示module类被导入。
为了使顶层程序和底层模块的头文件一致,一般往往采用更为简便的办法:
#ifdef ISTOP #define DLLMODE __declspec(dllimport) #else #define DLLMODE __declspec(dllexport) #endif
在顶层工程里加宏定义即可
#define ISTOP