亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DLL文件的創(chuàng)建和測試程序

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 2023-08-03 11:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

創(chuàng)建DLL有幾種不同的方式,最簡單直接的的方式就是通過VS自帶的動態(tài)鏈接庫(DLL)項目,把相關(guān)的功能封裝成一個類,然后導(dǎo)出幾個接口方法,編譯成功以后生成DLL文件,就可以在其他地方跟正常的第三方庫配置之后一樣調(diào)用了。

01創(chuàng)建DLL

首先打開VS創(chuàng)建一個DLL空項目,打開VS的桌面向?qū)缦拢?/p>

d8ae4768-3111-11ee-9e74-dac502259ad0.png

創(chuàng)建DLL鏈接庫項目

d8e07594-3111-11ee-9e74-dac502259ad0.png

然后在頭文件中添加mytest.h文件,添加代碼如下:

#pragmaonce

#ifdef_DLL_EXPORTS
#defineDLL_API_declspec(dllexport)
#else
#defineDLL_API_declspec(dllimport)
#endif

#include

//=========導(dǎo)出函數(shù)C++調(diào)用接口============
classDLL_APIMyTestDLL{
public:
intaddData(inta,intb);
~MyTestDLL();
};
然后在源文件中添加mytest.cpp文件,添加代碼如下:
#define_DLL_EXPORTS
#include

MyTestDLL::~MyTestDLL(){
std::cout<
 編譯運行成功,顯示如下:

d8fc02fa-3111-11ee-9e74-dac502259ad0.png

02DLL測試程序

創(chuàng)建測試程序,來測試DLL。新建一個控制臺空項目,在源文件中添加main.cpp文件,然后添加如下代碼:

#include"opencv2/opencv.hpp"
#include"mytest.h"

intmain(intargc,char**argv){
std::cout<mydll(newMyTestDLL());
intsum=mydll->addData(3,5);
std::cout<
運行結(jié)果如下:

d9291146-3111-11ee-9e74-dac502259ad0.png

d964e144-3111-11ee-9e74-dac502259ad0.png

YOLOv8對象檢測DLL測試

采用相同的方法,基于ONNXRUNTIME深度學(xué)習(xí)模型庫框架, 我對以前ONNXRUNTIME + YOLOv8對象檢測C++代碼稍作修改,封裝了一個YOLOv8對象檢測推理類為DLL,支持C++與C#接口調(diào)用??蛻舳苏{(diào)用代碼如下:

#include"yolov8_infer.h"
#include
#include

std::stringlabel_map="D:/python/yolov5-7.0/classes.txt";
intmain(intargc,char**argv){
std::stringnames="10:bike";
intpos=names.find_first_of(":");
std::cout<>"<classNames;
std::ifstreamfp(label_map);
std::stringname;
while(!fp.eof()){
getline(fp,name);
if(name.length()){
classNames.push_back(name);
}
}
fp.close();
//std::shared_ptrdetector(newYOLOv5ORTDetector());
std::shared_ptrdetector(newYOLOv8ORTDetector());
detector->initConfig("D:/python/my_yolov8_train_demo/yolov8n.onnx",640,640,0.25f,0.5);
cv::VideoCapturecapture("D:/images/video/sample.mp4");
cv::Matframe;
std::vectorresults;
while(true){
boolret=capture.read(frame);
if(frame.empty()){
break;
}
int64start=cv::getTickCount();
detector->detect(frame,results);
floatfps=static_cast(cv::getTickFrequency())/(cv::getTickCount()-start);
cv::putText(frame,cv::format("FPS:%.2f",fps),cv::Point(50,50),cv::FONT_HERSHEY_SIMPLEX,1.0,cv::Scalar(255,0,255),2,8);
for(DetectResultdr:results){
cv::Rectbox=dr.box;
cv::putText(frame,classNames[dr.classId],cv::Point(box.tl().x,box.tl().y-10),cv::FONT_HERSHEY_SIMPLEX,.5,cv::Scalar(0,0,0));
}
cv::imshow("YOLOv8+ONNXRUNTIME-DLL導(dǎo)出演示",frame);
charc=cv::waitKey(1);
if(c==27){//ESC退出
break;
}
//resetfornextframe
results.clear();
}

return0;
}
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • dll
    dll
    +關(guān)注

    關(guān)注

    0

    文章

    116

    瀏覽量

    46193
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9000

    瀏覽量

    153713
  • 封裝
    +關(guān)注

    關(guān)注

    128

    文章

    8670

    瀏覽量

    145456
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75284
  • 動態(tài)鏈接庫
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    7139

原文標(biāo)題:手把手教你 封裝DLL類 給客戶端調(diào)用

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    LABVIEW 創(chuàng)建DLL 文件 字符串連接

    `想利用labview 創(chuàng)建dll 文件。程序很簡單,就是把兩個字符串連接起來。DLL 文件
    發(fā)表于 05-23 12:27

    LabVIEW中DLL文件創(chuàng)建過程和編程結(jié)果

    ,并給出了編程結(jié)果。本文提供的程序創(chuàng)建方法可推廣應(yīng)用于其他DLL文件的開發(fā)。關(guān)鍵詞:動態(tài)鏈接庫; LabVIEW; 自動測量; 儀器控制 Building and Applicatio
    發(fā)表于 05-15 07:24

    怎么為dll創(chuàng)建文件?

    >或者,我可以導(dǎo)入沒有標(biāo)題的DLL嗎?除非它是VEE識別的組件庫。>是否有可能為奇怪的DLL創(chuàng)建一個>頭文件,我不知道?你可以用dumpbin或depends來輕松獲得函數(shù)名。參數(shù)列表
    發(fā)表于 10-21 15:48

    comres.dll下載 (comres.dll文件病毒)

    描述:comres.dll是系統(tǒng)的動態(tài)鏈接庫文件。   文件路徑: C:WINDOWSsystem32comres.dll   備份文件路徑
    發(fā)表于 11-28 14:12 ?113次下載
    comres.<b class='flag-5'>dll</b>下載 (comres.<b class='flag-5'>dll</b><b class='flag-5'>文件</b>病毒)

    usp10.dll下載 (usp10.dll文件)

      usp10.dll是什么?usp10.dll是字符顯示腳本應(yīng)用程序接口相關(guān)文件。如果出現(xiàn)"沒有找到usp10.dll"
    發(fā)表于 11-28 15:04 ?238次下載
    usp10.<b class='flag-5'>dll</b>下載 (usp10.<b class='flag-5'>dll</b><b class='flag-5'>文件</b>)

    如何編寫dll文件

    如何編寫dll文件:可以用幾種語言來實現(xiàn),如delphi編寫dll,pb編寫dll文件,java 編寫d
    發(fā)表于 01-16 10:20 ?9005次閱讀

    如何用pb編寫dll文件

    如何用pb編寫dll文件 在Windows CE中,所有的驅(qū)動程序都以dll形式存在。Dll文件
    發(fā)表于 01-16 10:24 ?4473次閱讀

    mfc71.dll是什么

    mfc71.dll是什么 mfc71.dll是Microsoft基礎(chǔ)類( MFC )在創(chuàng)建Microsoft Visual Studio所使用的應(yīng)用功能模塊,此mfc71.dll并非
    發(fā)表于 11-28 15:17 ?2388次閱讀
    mfc71.<b class='flag-5'>dll</b>是什么

    Delphi教程之取得和修改文件創(chuàng)建和修改日期

    Delphi教程之取得和修改文件創(chuàng)建和修改日期,很好的Delphi資料,快來下載吧。
    發(fā)表于 04-11 15:59 ?6次下載

    創(chuàng)建基于DLL的Proteus仿真模型

    創(chuàng)建基于DLL的Proteus仿真模型,希望對大家有所幫助!一起學(xué)習(xí)。
    發(fā)表于 04-13 14:29 ?43次下載

    Arduino板是什么如何使用IDE軟件創(chuàng)建和上傳Arduino程序到Arduino板

    本章我們將研究Arduino板和IDE軟件,我們要用IDE軟件創(chuàng)建和上傳Arduino程序到Arduino板(Arduino用草圖表示程序,我們還是繼續(xù)用程序這個傳統(tǒng)術(shù)語)。我們會學(xué)到
    發(fā)表于 05-14 18:11 ?4次下載
    Arduino板是什么如何使用IDE軟件<b class='flag-5'>創(chuàng)建和</b>上傳Arduino<b class='flag-5'>程序</b>到Arduino板

    使用LabVIEW調(diào)用DLL文件的方法

    DLL(動態(tài)鏈接庫)文件是 Dynamic Link Library 的縮寫形式,是一種允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源的可執(zhí)行文件。其多數(shù)情況下是帶有
    發(fā)表于 10-29 08:00 ?33次下載
    使用LabVIEW調(diào)用<b class='flag-5'>DLL</b><b class='flag-5'>文件</b>的方法

    FreeRTOS任務(wù)如何創(chuàng)建和刪除?

    在FreeRTOS移植到Cortex-M3硬件平臺的文章中,我們已經(jīng)見過任務(wù)創(chuàng)建API,但那篇文章的重點在于如何移植FreeRTOS,本文將重點放在任務(wù)的創(chuàng)建和刪除API函數(shù)上面。 任務(wù)創(chuàng)建和刪除
    的頭像 發(fā)表于 03-11 18:08 ?3235次閱讀

    如何創(chuàng)建和使用LabVIEW中的LLB文件

    如何創(chuàng)建和使用LabVIEW中的LLB文件
    發(fā)表于 11-22 16:12 ?0次下載

    DLL簡介

    DLL 劫持 DLL 簡介 在 Windows 中,許多應(yīng)用程序并不是一個完整的可執(zhí)行文件,它們被分割成一些相對獨立的動態(tài)鏈接庫,即 DLL
    的頭像 發(fā)表于 05-22 15:51 ?2273次閱讀
    <b class='flag-5'>DLL</b>簡介