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...