对于我们的一个Win32控制台应用程序,我们该如何在此项目基础上将一些函数作为接口打包到生成的库里面,我们可以直接在此项目上做修改。
网上也有说在新建一个项目时选择项目类型为DLL,然后再在此项目里面定义一些接口函数,我觉得效果应该是一样的。
*****打开一个我们需要打包生成dll和lib的项目*****
1.在头文件(没有硬性要求必须在头文件里面,也可以在源文件的上面,可以根据自己的习惯写)中定义宏和接口函数声明
#define TESTDLL_API __declspec(dllexport)
extern "C" TESTDLL_API void ReadGlobalParamFromFile(char* path);
以上两行代码就代表当加载生成的dll时,可以直接调用里面的ReadGlobalParamFromFile函数,也就是我们所说的接口函数
2.在源文件即.cpp文件里进行接口函数的定义
TESTDLL_API void ReadGlobalParamFromFile(char* path){
fin.open(path);
fin >> global_params.bagging_overlap;
cout << "Loading GlobalParam end" << endl;
fin.close();
}
注意此函数定义前面需要加上宏名TESTDLL_API代表这是一个接口函数。
3.右击当前项目,选择属性
在配置属性里选择通用,并将配置类型改为Dynamic Library (.dll)
以上3步完成后,点击生成解决方案后,在你对应的目录下会生成dll和lib文件,因为我是在release、x64下生成的,所以在我当前项目的x64/Release目录下可以看到生成的库文件
这样你就可以在其他项目里加载库并调用接口函数了