在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 2023-08-03 11:17 ? 次閱讀

前言

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

01創(chuàng)建DLL

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

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

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

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<
 編譯運(yùn)行成功,顯示如下:

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

02DLL測(cè)試程序

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

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

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

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

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

YOLOv8對(duì)象檢測(cè)DLL測(cè)試

采用相同的方法,基于ONNXRUNTIME深度學(xué)習(xí)模型庫(kù)框架, 我對(duì)以前ONNXRUNTIME + YOLOv8對(duì)象檢測(cè)C++代碼稍作修改,封裝了一個(gè)YOLOv8對(duì)象檢測(cè)推理類為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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dll
    dll
    +關(guān)注

    關(guān)注

    0

    文章

    116

    瀏覽量

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

    關(guān)注

    33

    文章

    8712

    瀏覽量

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

    關(guān)注

    127

    文章

    8008

    瀏覽量

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

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73887
  • 動(dòng)態(tài)鏈接庫(kù)

    關(guān)注

    0

    文章

    11

    瀏覽量

    7077

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

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

    描述:comres.dll是系統(tǒng)的動(dòng)態(tài)鏈接庫(kù)文件。   文件路徑: 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文件:可以用幾種語言來實(shí)現(xiàn),如delphi編寫dll,pb編寫dll文件,java 編寫d
    發(fā)表于 01-16 10:20 ?8901次閱讀

    如何用pb編寫dll文件

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

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

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

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

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

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

    本章我們將研究Arduino板和IDE軟件,我們要用IDE軟件創(chuàng)建和上傳Arduino程序到Arduino板(Arduino用草圖表示程序,我們還是繼續(xù)用程序這個(gè)傳統(tǒng)術(shù)語)。我們會(huì)學(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(動(dòng)態(tài)鏈接庫(kù))文件是 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硬件平臺(tái)的文章中,我們已經(jīng)見過任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將重點(diǎn)放在任務(wù)的創(chuàng)建和刪除API函數(shù)上面。 任務(wù)創(chuàng)建和刪除
    的頭像 發(fā)表于 03-11 18:08 ?3004次閱讀

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

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

    DLL簡(jiǎn)介

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

    如何使用TSMaster調(diào)用外部DLL/LIB程序

    調(diào)用外部DLL/LIB程序在用戶自定義開發(fā)過程中,常常會(huì)遇到需要調(diào)用外部DLL/LIB程序文件的需求,這些文件可能是用戶自己編寫的,也可能是
    的頭像 發(fā)表于 08-16 09:36 ?1502次閱讀
    如何使用TSMaster調(diào)用外部<b class='flag-5'>DLL</b>/LIB<b class='flag-5'>程序</b>
    主站蜘蛛池模板: 国产亚洲一区二区精品 | 最近高清免费观看视频大全 | 国产精品成人一区二区三区 | 九九国产精品视频 | 久久老色鬼天天综合网观看 | 丁香五月欧美成人 | 婷婷久久综合九色综合98 | 伊人色强在线网 | 天天拍天天色 | 亚洲欧美日本视频 | 成人毛片在线播放 | 日本大片在线看 | 免费高清在线观看a网站 | 成人欧美精品大91在线 | 天堂网a| 最近高清免费观看视频大全 | 四虎东方va私人影库在线观看 | 香蕉久久夜色精品国产小说 | 在线观看你懂的网址 | 国产高清一区二区 | 免费播放欧美毛片欧美aaaaa | 国产va免费精品高清在线 | 天天干天天操天天摸 | 在线观看视频免费入口 | 国产精品14p | 欧美日韩色综合网站 | 日本黄页网站在线观看 | 日本精品一在线观看视频 | 手机免费黄色网址 | 国产在线精品一区免费香蕉 | 日本一视频一区视频二区 | 国产精品片| 激情综合网色播五月 | 成人免费看毛片 | 深爱五月综合网 | 在线播放视频网站 | 手机看片1024精品日韩 | 大桥未久加勒比女热大陆在线 | 日本免费黄色片 | 成人av在线播放 | 视色4setv.com |