C++ dll动态链接库头文件的写法,发现这个写法比较好,把该dll导出的函数,以及调用该导出函数可能的错误代码都定义在头文件里面,该怎么修炼写出高质量的代码的习惯呢?自己偶有所得,记下来以备日后查阅。
#ifndef _DLLMODULENAME_H//防止头文件重复包含
#define _DLLMODULENAME_H
#include "armadillo"//该dll用到的一些头文件
using namespace arma;
#define ERROR_OPENFILE_FAILED -1//该dll导出函数调用失败时可能的错误返回代码.
#define ERROR_LOAD_MATRIX -2
#define ERROR_LOAD_IMAGE -3
#define ERROR_UNMATCHED_MATRIX -4
#define ERROR_SUCCESS 1
#ifdef _cplusplus//若是C++,那么就以C语言的方式进行连接
extern "C"{
#endif
#ifdef _DLLMODULENAME_
#define ENCODE_API _declspec(dllexport)//对该dll而言,这个函数是将要导出的函数,供其他应用程序调用。
#else
#define ENCODE_API _declspec(dllimport)//对调用该dll的应用程序而言,该函数是从dll导入的函数。
#endif
ENCODE_API int imencode(const char*infoFile,const char*imgFile,mat&code);
#undef ENCODE_API
#ifdef _cplusplus
}
#endif
#endif