BCB 使用 DLL 發生錯誤(他人電腦上) |
尚未結案
|
honoyang
一般會員 發表:1 回覆:0 積分:0 註冊:2009-01-21 發送簡訊給我 |
大家好
這幾天我一直在解決一個DLL的問題 事實上我對DLL的了解並不深 只能做簡易的編寫 而且初步來看是可以run的 只是當用在BCB 上時,在別人電腦無法開啓。 實在是研究了兩三天,大概發現問題是在哪,想請大家幫我一下 ===================================================================== 我用Visual studio 2005先編寫一個使用了OPENCV的程式 接著將它做成DLL檔由BCB使用 結果在我的電腦上可以run但換了台電腦就不行了 於是我也用Visual studio 2005寫了呼叫此DLL的程式 這次兩台電腦都可以了。 經過測試後,發現將SIFT() 中有使用到的函式全拿掉 別人用BCB就可以run了, 所以我現在不知道到底問題出在DLL的製作發生錯誤還是BCB沒有設定好 目前是比較偏向懷疑BCB, 有沒有可能是路徑發生問題 想請各位幫幫忙 祝大家新年快樂 謝謝 [code cpp] #include ".\OpenCv_header\cv_include\cv.h" #include ".\OpenCv_header\cxcore_include\cxcore.h" #include ".\OpenCv_header\higui_include\highgui.h" #include "sift.h" #include "imgfeatures.h" #include "utils.h" #include "kdtree.h" #include "fstream" //主函式 void SIFT() { ifstream infile("img.txt",ios::in); ofstream xfile("x.txt",ios::out); ofstream yfile("y.txt",ios::out); ofstream total("t.txt",ios::out); char img1_file_name[100] ; char img2_file_name[100] ; infile>>img1_file_name>>img2_file_name; IplImage * tImg1 = cvLoadImage( img1_file_name, 1); IplImage * tImg2 = cvLoadImage( img2_file_name, 1); IplImage * tImg1and2 = stack_imgs( tImg1, tImg2 ); cvSaveImage("orif.bmp",tImg1); cvSaveImage("oris.bmp",tImg2); /*- find sift feature -*/ feature * feat1, * feat2; cout<<"Processing "< cout<<"Processing "< /*- kdtree -*/ struct kd_node* kd_root = kdtree_build( feat2, featN2 ); /*- match -*/ int k, m=0; double d0, d1; feature * feat, **nbrs; CvPoint pt1, pt2; for( int i = 0; i < featN1; i ) { feat = feat1 i; k = kdtree_bbf_knn( kd_root, feat, 2, &nbrs, KDTREE_BBF_MAX_NN_CHKS ); if( k == 2 ) { d0 = descr_dist_sq( feat, nbrs[0] ); d1 = descr_dist_sq( feat, nbrs[1] ); if( d0 < d1 * NN_SQ_DIST_RATIO_THR ) { m ; pt1 = cvPoint( cvRound( feat->x ), cvRound( feat->y ) ); pt2 = cvPoint( cvRound( nbrs[0]->x ), cvRound( nbrs[0]->y ) ); xfile< cvLine( tImg1and2, pt1, pt2, CV_RGB(255,0,255), 1, 8, 0 ); feat1[i].fwd_match = nbrs[0]; } } free( nbrs ); } total< cvShowImage("sun",tImg1and2); cvSaveImage("SIFT.bmp",tImg1and2); cvWaitKey(0); } [code cpp] //.h檔內容 #ifndef __REDLL_H__ #define __REDLL_H__ #define REDLL_API __declspec(dllexport) extern "C" { REDLL_API void SIFT(); } #endif // _REDLL_H__ [/code] [/code] |
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |