如何把自己的算法功能打包供给软件调用,就需要知道如何将算法打包成dll动态链接库。
第一步:创建C++空项目
第二步:创建头文件(.h)以及源文件(.cpp)
第三步:编写头文件(重点)
?下代码显示部分是模板,名称可以自己起,最重要的就是__declspec(dllexport)以及__declspec(dllimport)。一个是导出,一个是导入。
#pragma once
#ifndef OCRLITENCNN_H
#define OCRLITENCNN_H
//宏定义导出
#define OCRLITENCNN_EXPORTS
#ifdef OCRLITENCNN_EXPORTS
#define OCRLITENCNN_API __declspec(dllexport)
#else
#define OCRLITENCNN_API __declspec(dllimport)
#endif
//编写代码区域可以定义你的命名空间,你的类
class OCRLITENCNN_API OcrLiteEx {
public:
//定义一些单例,主函数,初始化
bool Init(int numThread, const char* modelDetPath, const char* modelClsPath, const char* modelRecPath, const char* keysPath, int flagGpu);
int Deinit();
OcrResult Detect(const char* imgDir, const char* imgName, int padding, int maxSideLen, float boxScoreThresh, float boxThresh, float unClipRatio, bool doAngle, bool mostAngle);
private:
//定义一些变量,私有函数
OcrLiteEx();
~OcrLiteEx();
};
#endif
第4步:编写.cpp文件
这一步主要是一个算法实现脚本alg.cpp和main.cpp的实现,这里涉及到如何调用之前算法实现脚本生成的dll文件,dll实现主要通过在属性设置下,常规配置类型里把.exe改选成动态库(.dll)然后点击菜单栏里的生成-》重新生成,然后生成完之后,到项目文件下x64-》release文件下找到新生成的dll文件
第5步:交接
将生成的dll文件,lib文件,还有编译的环境dll文件一起给到软件,如果有算法模型,也要给