使用VC6.0中的新建一个Win32 Dynamic-Link Library类型的工程,工程名为:dll,创建一个空的动态链接库工程,然后再工程中添加C++源文件:dll.cpp以及头文件:dll.h,在头文件以及源文件中输入下面的代码:
dll头文件:
dll.h
#ifndef DLL1_API
#define DLL1_API _declspec(dllexport)
#endif
DLL1_API int processSaliency(char *filename, char *old_path, char *new_path);
dll的生成步骤:
要生成的函数:
dll.cpp
#define DLL1_API _declspec(dllexport)
#include "egt_saliency.h"
#include <iostream>
#include "saliency.h"
#pragma comment(lib, "saliency.lib")
#pragma comment(lib, "mclmcrrt.lib")
using std::cout;
using std::cin;
using std::endl;
int processSaliency(char *filename, char *old_path, char *new_path)
{
// initialize lib
if( !saliencyInitialize())
{
cout << "Could not initialize Saliency!" << endl;
return -1;
}
gbvs_main(filename, old_path, new_path);
saliencyTerminate();
mclTerminateApplication();
return 0;
}
最后编译,在工程中会生成:dll.dll和dll.lib这两个文件;在测试程序中,需要将dll.dll、dll.lib和dll.h这三个文件一起拷贝到测试程序的工程中,这样测试程序就可以利用dll来调用函数了。