利用BCB呼叫VC寫的DLL |
尚未結案
|
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
請問各位大大
小弟有參考過http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 的文章寫法~~將RaynorPao大大的說法依樣畫葫蘆的寫了成功執行的程式 現在我要將之前學長用VC寫的DLL呼叫出來...依照相同的寫法..卻始終會出現 [Linker Error] Unresolved external 'CDspII::Process(int *, float *, float *)' referenced from C:\BCBSTA\UNIT1.OBJ 這樣的錯誤訊息>< 不知道各位前輩能否告知~~小弟呼叫DLL是哪邊出了問題? 我將學長程式的.h檔寫上來..再將我用BCB呼叫DLL的程式寫上~~希望各位大大能幫小弟解惑 .h檔程式 class __declspec(dllimport) CDspII { public: CDspII(){}; virtual ~CDspII(){}; BOOL Process(int* Data,float* Header,float* ECG); protected: int GetPeakPos(int *Position); }; BCB的button程式 void __fastcall TForm1::Button1Click(TObject *Sender) { float Header[8]; float ECG[3750]; int input[3750]; TStringList *sl=new TStringList; sl->LoadFromFile("1.txt");//把檔案內容抓到sl for (int i =0;i<3750; i ) { IntToStr(input[i])=sl->Strings[i]; } delete sl; ShowMessage(IntToStr(AddMethodEx(1,1))); CDspII *pDspII; pDspII = new CDspII(); pDspII->Process(input,Header,ECG); } |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
你可能要弄清楚,你要使用的是
1. *.h *.lib 還是 2.自訂宣告(Implicit or explicit) *.DLL ===================引 用 akino0910 文 章=================== 請問各位大大 小弟有參考過http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 的文章寫法~~將RaynorPao大大的說法依樣畫葫蘆的寫了成功執行的程式 現在我要將之前學長用VC寫的DLL呼叫出來...依照相同的寫法..卻始終會出現 [Linker Error] Unresolved external 'CDspII::Process(int *, float *, float *)' referenced from C:\BCBSTA\UNIT1.OBJ 這樣的錯誤訊息>< 不知道各位前輩能否告知~~小弟呼叫DLL是哪邊出了問題? 我將學長程式的.h檔寫上來..再將我用BCB呼叫DLL的程式寫上~~希望各位大大能幫小弟解惑 .h檔程式 class __declspec(dllimport) CDspII { public: CDspII(){}; virtual ~CDspII(){}; BOOL Process(int* Data,float* Header,float* ECG); protected: int GetPeakPos(int *Position); }; BCB的button程式 void __fastcall TForm1::Button1Click(TObject *Sender) { float Header[8]; float ECG[3750]; int input[3750]; TStringList *sl=new TStringList; sl->LoadFromFile("1.txt");//把檔案內容抓到sl for (int i =0;i<3750; i ) { IntToStr(input[i])=sl->Strings[i]; } delete sl; ShowMessage(IntToStr(AddMethodEx(1,1))); CDspII *pDspII; pDspII = new CDspII(); pDspII->Process(input,Header,ECG); } |
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
感謝syntax大大的回覆
小弟昨天才開始接觸DLL的東西...學長去當兵了~~ 他只留下DLL跟.h檔給我... 我不太懂大大說的意思>< 以下兩種使用跟我引用RaynorPao大大個說法有什麼差別? ===================引 用 syntax 文 章=================== 你可能要弄清楚,你要使用的是 1. *.h *.lib 還是 2.自訂宣告(Implicit or explicit) *.DLL ===================引 用 akino0910 文 章=================== 請問各位大大 小弟有參考過http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 的文章寫法~~將RaynorPao大大的說法依樣畫葫蘆的寫了成功執行的程式 現在我要將之前學長用VC寫的DLL呼叫出來...依照相同的寫法..卻始終會出現 [Linker Error] Unresolved external 'CDspII::Process(int *, float *, float *)' referenced from C:\BCBSTA\UNIT1.OBJ 這樣的錯誤訊息>< 不知道各位前輩能否告知~~小弟呼叫DLL是哪邊出了問題? 我將學長程式的.h檔寫上來..再將我用BCB呼叫DLL的程式寫上~~希望各位大大能幫小弟解惑 .h檔程式 class __declspec(dllimport) CDspII { public: CDspII(){}; virtual ~CDspII(){}; BOOL Process(int* Data,float* Header,float* ECG); protected: int GetPeakPos(int *Position); }; BCB的button程式 void __fastcall TForm1::Button1Click(TObject *Sender) { float Header[8]; float ECG[3750]; int input[3750]; TStringList *sl=new TStringList; sl->LoadFromFile("1.txt");//把檔案內容抓到sl for (int i =0;i<3750; i ) { IntToStr(input[i])=sl->Strings[i]; } delete sl; ShowMessage(IntToStr(AddMethodEx(1,1))); CDspII *pDspII; pDspII = new CDspII(); pDspII->Process(input,Header,ECG); } |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
如果你只有 DLL,那你就不會用到 *.h
1. 使用 explicit 直接在你的程式內定義 xxxx function xxxxxxxx.... "yyyy.DLL" 2. 使用 implicit 呼叫 LoadLibrary GetProcAddress ===================引 用 akino0910 文 章=================== 感謝syntax大大的回覆 小弟昨天才開始接觸DLL的東西...學長去當兵了~~ 他只留下DLL跟.h檔給我... 我不太懂大大說的意思>< 以下兩種使用跟我引用RaynorPao大大個說法有什麼差別? ===================引 用 syntax 文 章=================== 你可能要弄清楚,你要使用的是 1. *.h *.lib 還是 2.自訂宣告(Implicit or explicit) *.DLL ===================引 用 akino0910 文 章=================== 請問各位大大 小弟有參考過http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 的文章寫法~~將RaynorPao大大的說法依樣畫葫蘆的寫了成功執行的程式 現在我要將之前學長用VC寫的DLL呼叫出來...依照相同的寫法..卻始終會出現 [Linker Error] Unresolved external 'CDspII::Process(int *, float *, float *)' referenced from C:\BCBSTA\UNIT1.OBJ 這樣的錯誤訊息>< 不知道各位前輩能否告知~~小弟呼叫DLL是哪邊出了問題? 我將學長程式的.h檔寫上來..再將我用BCB呼叫DLL的程式寫上~~希望各位大大能幫小弟解惑 .h檔程式 class __declspec(dllimport) CDspII { public: CDspII(){}; virtual ~CDspII(){}; BOOL Process(int* Data,float* Header,float* ECG); protected: int GetPeakPos(int *Position); }; BCB的button程式 void __fastcall TForm1::Button1Click(TObject *Sender) { float Header[8]; float ECG[3750]; int input[3750]; TStringList *sl=new TStringList; sl->LoadFromFile("1.txt");//把檔案內容抓到sl for (int i =0;i<3750; i ) { IntToStr(input[i])=sl->Strings[i]; } delete sl; ShowMessage(IntToStr(AddMethodEx(1,1))); CDspII *pDspII; pDspII = new CDspII(); pDspII->Process(input,Header,ECG); } |
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
不知道大大說的是不是RaynorPao大大文章說的動態連結...
我有從版中看到有人跟我有相似的問題 http://delphi.ktop.com.tw/board.php?cid=168&fid=920&tid=89695 我將他的程式下載下來...然後依照RaynorPao大大文章說名作修改之後...確實是能夠執行 可是我載入我的DLL跟.h檔卻始終跑出相同的錯誤訊息... 是因為我DLL適用C 寫的關係嗎? 還是哪個環節出了問題... ===================引 用 syntax 文 章=================== 如果你只有 DLL,那你就不會用到 *.h 1. 使用 explicit 直接在你的程式內定義 xxxx function xxxxxxxx.... "yyyy.DLL" 2. 使用 implicit 呼叫 LoadLibrary GetProcAddress ===================引 用 akino0910 文 章=================== 感謝syntax大大的回覆 小弟昨天才開始接觸DLL的東西...學長去當兵了~~ 他只留下DLL跟.h檔給我... 我不太懂大大說的意思>< 以下兩種使用跟我引用RaynorPao大大個說法有什麼差別? ===================引 用 syntax 文 章=================== 你可能要弄清楚,你要使用的是 1. *.h *.lib 還是 2.自訂宣告(Implicit or explicit) *.DLL ===================引 用 akino0910 文 章=================== 請問各位大大 小弟有參考過http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 的文章寫法~~將RaynorPao大大的說法依樣畫葫蘆的寫了成功執行的程式 現在我要將之前學長用VC寫的DLL呼叫出來...依照相同的寫法..卻始終會出現 [Linker Error] Unresolved external 'CDspII::Process(int *, float *, float *)' referenced from C:\BCBSTA\UNIT1.OBJ 這樣的錯誤訊息>< 不知道各位前輩能否告知~~小弟呼叫DLL是哪邊出了問題? 我將學長程式的.h檔寫上來..再將我用BCB呼叫DLL的程式寫上~~希望各位大大能幫小弟解惑 .h檔程式 class __declspec(dllimport) CDspII { public: CDspII(){}; virtual ~CDspII(){}; BOOL Process(int* Data,float* Header,float* ECG); protected: int GetPeakPos(int *Position); }; BCB的button程式 void __fastcall TForm1::Button1Click(TObject *Sender) { float Header[8]; float ECG[3750]; int input[3750]; TStringList *sl=new TStringList; sl->LoadFromFile("1.txt");//把檔案內容抓到sl for (int i =0;i<3750; i ) { IntToStr(input[i])=sl->Strings[i]; } delete sl; ShowMessage(IntToStr(AddMethodEx(1,1))); CDspII *pDspII; pDspII = new CDspII(); pDspII->Process(input,Header,ECG); } |
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
報告大大
你說的兩種方式我都試過了...好像都無法呼叫到我DLL裡面的函式... 不知道大大覺得我的問題出再哪裡?會像是我上一篇說的.. 也許是因為我的DLL檔案裡面的函式都適用C 的語法去做宣告的關係嗎? ===================引 用 syntax 文 章=================== 如果你只有 DLL,那你就不會用到 *.h 1. 使用 explicit 直接在你的程式內定義 xxxx function xxxxxxxx.... "yyyy.DLL" 2. 使用 implicit 呼叫 LoadLibrary GetProcAddress ===================引 用 akino0910 文 章=================== 感謝syntax大大的回覆 小弟昨天才開始接觸DLL的東西...學長去當兵了~~ 他只留下DLL跟.h檔給我... 我不太懂大大說的意思>< 以下兩種使用跟我引用RaynorPao大大個說法有什麼差別? ===================引 用 syntax 文 章=================== 你可能要弄清楚,你要使用的是 1. *.h *.lib 還是 2.自訂宣告(Implicit or explicit) *.DLL ===================引 用 akino0910 文 章=================== 請問各位大大 小弟有參考過http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 的文章寫法~~將RaynorPao大大的說法依樣畫葫蘆的寫了成功執行的程式 現在我要將之前學長用VC寫的DLL呼叫出來...依照相同的寫法..卻始終會出現 [Linker Error] Unresolved external 'CDspII::Process(int *, float *, float *)' referenced from C:\BCBSTA\UNIT1.OBJ 這樣的錯誤訊息>< 不知道各位前輩能否告知~~小弟呼叫DLL是哪邊出了問題? 我將學長程式的.h檔寫上來..再將我用BCB呼叫DLL的程式寫上~~希望各位大大能幫小弟解惑 .h檔程式 class __declspec(dllimport) CDspII { public: CDspII(){}; virtual ~CDspII(){}; BOOL Process(int* Data,float* Header,float* ECG); protected: int GetPeakPos(int *Position); }; BCB的button程式 void __fastcall TForm1::Button1Click(TObject *Sender) { float Header[8]; float ECG[3750]; int input[3750]; TStringList *sl=new TStringList; sl->LoadFromFile("1.txt");//把檔案內容抓到sl for (int i =0;i<3750; i ) { IntToStr(input[i])=sl->Strings[i]; } delete sl; ShowMessage(IntToStr(AddMethodEx(1,1))); CDspII *pDspII; pDspII = new CDspII(); pDspII->Process(input,Header,ECG); } |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |