- 在DLL工程头文件中使用宏标识符定义导入导出声明,并声明导出的函数
#ifdef FILEDLL_EXPORTS
#define FILEDLL_API extern"C" __declspec(dllexport)
#else
#define FILEDLL_API extern"C"__declspec(dllimport)
#endif
//声明导出导入函数
FILEDLL_API unsigned char* readmyfile(PTSTR p_pcstrFileName, BOOL g_bReadStyle);
FILEDLL_API void writemyfile(PTSTR p_pcstrFileName, int p_nlenoffile, unsigned char* p_pucbuffer);
FILEDLL_API void insertdatatomyfile(PTSTR p_pcstrFileName, unsigned char* p_pucbuffer, long p_loffset, int p_nLenofdata);
FILEDLL_API void DeleteDatafromFile(PTSTR p_pcstrFileName, long p_loffset, int p_nLenofdata);
以上宏定义的作用:如果一个工程想使用该动态库,那么他在包含DLL头文件的时候不定义FILEDLL_EXPORTS宏,则相应的FILEDLL_API则被定义为extern”C”__declspec(dllimport),那么该工程在执行函数声明时则导入以上四个函数,相反,DLL工程则必须定义FILEDLL_EXPORTS宏标识,那么DLL工程的源文件包含该头文件的时候FILEDLL_API则被定义为extern”C” __declspec(dllexport),那么DLL工程在执行函数声明时则导出以上四个函数。
2. 在DLL工程源文件中定义相应功能函数,所有到处函数的类型必须与头文件中声明的一致
3. 如果A工程想调用DLL文件,则第一步将DLL工程提供的头文件拷贝到A工程目录下并在调用DLL函数的文件中#include”DLL头文件”,第二步点击project->setting,选择link,在object/library/modules:编辑框中输入DLL工程提供的.lib文件。
最后可以随意调用DLL提供的接口函数和类了。