VS2008环境下,建立一个solution,然后在该解决方案中建立两个工程,一个是dll,一个测试程序:
建立dll工程的步骤:
1.建立win32 控制台程序
2. 应用程序类型选择dll
3.完成
在工程中添加文件lib.h,lib.cpp,内容如下:
////头文件 lib.h #ifndef LIB_H #include "commennFile.h" #include "ImageProcess.h" #define LIB_H extern "C" int _declspec(dllexport)recognize(const char * readFileName,const char * saveFileName); #endif ////////lib.cpp #include "stdafx.h" #include "lib.h" int recognize(const char * readFileName,const char * saveFileName) { }
recognize函数为接口函数
编译,通过,生成dll
建立测试程序,测试dll
建立mainTest.cpp文件
typedef int(*lpRecognize)(const char * readFileName,const char * saveFileName);//参数与dll中的recognize函数的一致 int main() { HINSTANCE hDll; char * filePath = "D:\\sample"; lpRecognize recogID; hDll = LoadLibrary("..\\debug\\preprocess.dll");//读取dll文件 if(hDll != NULL) { recogID = (lpRecognize)GetProcAddress(hDll,"recognize"); if(recogID == NULL) { FreeLibrary(hDll); return -1; } vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); //调用dll中的接口 for(int i =0;i< size;i++) recogID(files[i].c_str(),str); //调用dll中的函数 } FreeLibrary(hDll); return 0; }