關於BCB包裝與呼叫DLL |
答題得分者是:RaynorPao
|
blacknew
一般會員 發表:2 回覆:5 積分:1 註冊:2002-12-30 發送簡訊給我 |
請問各位先進: 我有一個 BCB包的DLL
內容如下" extern "C" __declspec(dllexport) int __stdcall Test1(int x, int y); int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
} //--------------------------------------------------------------------
int __stdcall Test1(int x, int y)
{
int t = x + y;
return t;
} //--------------------------------------------------------------------
//--------------------------------------------------------------------
//-------------------------------------------------------------------- 另有一個BCB的PROJECT呼叫此DLL
內容如下: extern "C" __declspec(dllimport) int __stdcall Test1(int x, int y); //--------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//-------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{ int a = 2;
int b = 5;
int c = Test1(a,b);
ShowMessage(c);
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
//--------------------------------------------------------------------
我已將原來的.DLL轉成.LIB並ADD進PROJECT 但呼叫時有ERROR : [Linker Error] Unresolved external 'Test1' from d:\bcb\....\unit1.obj 請問是哪一部份漏了嗎??
謝謝!!
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位先進: 我有一個 BCB包的DLL 內容如下" extern "C" __declspec(dllexport) int __stdcall Test1(int x, int y); int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { return 1; } //-------------------------------------------------------------------- int __stdcall Test1(int x, int y) { int t = x y; return t; } //-------------------------------------------------------------------- //-------------------------------------------------------------------- //-------------------------------------------------------------------- 另有一個BCB的PROJECT呼叫此DLL 內容如下: extern "C" __declspec(dllimport) int __stdcall Test1(int x, int y); //-------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //-------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int a = 2; int b = 5; int c = Test1(a,b); ShowMessage(c); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- //-------------------------------------------------------------------- 我已將原來的.DLL轉成.LIB並ADD進PROJECT 但呼叫時有ERROR : [Linker Error] Unresolved external 'Test1' from d:\bcb\....\unit1.obj 請問是哪一部份漏了嗎?? 謝謝!! blacknew 你好: (1)應該不用再另外轉吧 (靜態連結),在你的 DLL Project 編譯完成以後,應 該會在目錄下產生 *.DLL, *.LIB,你的 EXE Project 直接利用 Project Manager 把 *.LIB 加入就可以用了 ( > > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |