作者chengcti (卡馬請出來面對!!)
看板C_and_CPP
標題Re: [討論] 能以C++Bulider(BCB)使用OpenCV2.0物件嗎
時間Thu Aug 1 00:08:49 2013
我的作法是
拿 vs2012 開 opencv project, 且 build 成 dll
拿 bcb 呼叫 dll
BCB 的好處是 UI, opencv 拿 bcb build 會失去 intel ipp
cuda 這類的好東西, 因此這樣可以解決
※ 引述《deo2000 (800IM)》之銘言:
: 用了一兩年的opencv,
: 最近發現 BCB6 寫視窗介面相當好用,執行速度也比VS2010快上很多,
: 無奈跟 opencv 結合度好像不太好
: 上網找了相當多的資料,
: 發現大多數人經過一番苦幹後可用 BCB6 + opencv2.0
: 但寫 code 的時候還是只能用 1.0 的 function 與IplImage
: 有沒有 BCB 使用者,可以成功呼叫出 2.0 的物件與function呢?
: 不管我怎麼用,都是找不到"cv"這個namespace,無法用類似cv::imread();這樣的功能
: 1.0 的 function 無法用"cv::"使其自動跳出可選用的 member,變得很麻煩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.153.98
→ bugmens:OpenCV 2.0之後多了很多C++的功能,但VC++編譯出來的DLL 08/01 17:02
→ bugmens:Name mangling機制VC++和BCB是不同的 08/01 17:04
→ bugmens:很好奇你真的有呼叫成功嗎 08/01 17:04
extern "C" 即可
我的辨識都是先用 vc2012 寫成核心 dll
export 一個 entry 再給 bcb 呼叫即可
中間再透過 IPC 做資料交換
BCB make 出來的 code 沒有 vc 好, 尤其是要講求速度的時候
因為 bcb 裡面有一堆 vcl 的 rtl 會拖累速度
※ 編輯: chengcti 來自: 1.34.153.98 (08/01 23:18)
→ bugmens:我一直以為不能直接呼叫VC的dll,原來是透過IPC做資料交換 08/02 02:47
→ bugmens:感謝提供作法 08/02 02:48