yolov5-seg-opencv-onnxruntime-cpp icon indicating copy to clipboard operation
yolov5-seg-opencv-onnxruntime-cpp copied to clipboard

How to output. dll

Open zhangzhen999 opened this issue 1 year ago • 1 comments

May I ask the author how to rewrite the code to output * *. dll

zhangzhen999 avatar Aug 09 '24 01:08 zhangzhen999

c/c++封装dll是一个需要稍微学习一下的知识(windows开发必修),可以搜索下c++导出dll封装并调用。 而且导出方式跟你的调用方式也有关系,你是静态调用还是动态调用,导出只要某些特定函数还是导出整个类都有点区别。 另外就是要确定输入输出的格式,对外暴露的接口信息,是否需要C格式兼容(extend “C”)还是c++就行。 建议用vs创建项目,选择c++ 然后选择 动态链接库,有导出符号选项的话可以选上。以下为vs自动创建的c++格式导出dll的demo

  • export_dll_demo.h

// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 EXPORT_DLL_DEMO_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// EXPORT_DLL_DEMO_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef EXPORT_DLL_DEMO_EXPORTS
#define EXPORT_DLL_DEMO_API __declspec(dllexport)

#else
#define EXPORT_DLL_DEMO_API __declspec(dllimport)
#endif

// 此类是从 export_dll_demo.dll 导出的
class EXPORT_DLL_DEMO_API Cexport_dll_demo {
public:
	Cexport_dll_demo(void);
	// TODO:  在此添加您的方法。
};

extern EXPORT_DLL_DEMO_API int nexport_dll_demo;

EXPORT_DLL_DEMO_API int fnexport_dll_demo(void);

  • export_dll_demo.cpp
// export_dll_demo.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "export_dll_demo.h"


// 这是导出变量的一个示例
EXPORT_DLL_DEMO_API int nexport_dll_demo=0;

// 这是导出函数的一个示例。
EXPORT_DLL_DEMO_API int fnexport_dll_demo(void)
{
    return 42;
}

// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 export_dll_demo.h
Cexport_dll_demo::Cexport_dll_demo()
{
    return;
}

UNeedCryDear avatar Aug 09 '24 02:08 UNeedCryDear