在Qt載入依賴Opencv開發的第三方庫

2021-10-18 02:31:04 字數 1677 閱讀 3430

qt載入依賴opencv開發的第三方庫:

qt載入庫有多種方法,其中:

一.載入靜態庫

客戶只提供 : xx.dll

常規操作步驟:

1.開啟「depends.exe」工具,檢視介面和依賴的庫:

如上圖所示:

介面函式:createlayoutsolution

依賴的庫:opencv_core248.dll、opencv_highgui248.dll、opencv_imgproc248.dll。

二.使用loadlibrary載入庫

1.把第三方庫和依賴的opencv庫,放到qt編譯目錄中:

如:把platelayout.dll、opencv_core248.dll、opencv_highgui248.dll、opencv_imgproc248.dll放到release目錄中;

2.載入庫:

下面展示一些內聯**片

qstring dllname = "platelayout";

std::wstring wlpstr = dllname.tostdwstring();

lpcwstr lpcwstr = wlpstr.c_str();

mdll = loadlibrary(lpcwstr);

if(mdll == null)

else

qdebug() << "load ok";

//結果

load ok

loadlibrary載入庫,庫名稱為其引數;

getlasterror獲得系統最後的錯誤結果:

193:找不到依賴的庫

注意:1.實際測試中使用msvc2015 64bit編譯器,載入32位dll,會報193號錯誤,需要把第三方庫和依賴的庫改為64位編譯器即可通過。

三:使用介面

直接給個例子:

下面展示一些內聯**片

typedef void(*func)(char* sfilepath, vectorvecpos, vectorvecsize, int nmaxnum, int nsize, 

int nswitchnum, int nthreadnum, vector&vecsolutions);

func createlayoutsolution = (func)getprocaddress(hinstance, "createlayoutsolution");

if(null == createlayoutsolution)

char* chimagepath = "h:\\專案\\排料演算法\\outline.png";

// 呼叫函式介面

createlayoutsolution

(chimagepath, vecpos, vecsize,

500,30,

30,8, vecsolutions)

;

四:釋放庫資源

freelibrary(hinstance);/釋放庫資源

//20200128除錯記錄

在Qt中使用opencv庫

查閱了很多的方法,編譯了很多次,發現還是不行。我使用qt5.2.1,vs2010,opencv2.3.1 1.用cmake編譯時候會出現 因為實在改不來這裡說的錯誤,我就試了所有可以用的opencv不同的版本,發現還是會有錯。2.問過同事後發現其實很簡單就可以使用opencv庫 只要在pro檔案中新...

Qt中配置OpenCV開發環境

整個過程還是比較艱辛,記錄一下使用到的各個軟體版本。我安裝的是qt opensource windows x86 mingw492 5.6.3。d opencv2.4.12 opencv sources output之後要將 d opencv2.4.12 opencv sources output ...

配置Qt開發環境下的OpenCV開發

1 使用cmake工具 選擇mingw makefile。一定要注意編譯的版本要與qt的mingw32的版本相同。否則容易出現undefined reference to cv imread std string const int 等錯誤。2 將mingw32的bin資料夾新增到系統環境變數中。3...