請問如何靜態call dll class |
答題得分者是:taishyang
|
cat200188
中階會員 發表:37 回覆:78 積分:68 註冊:2005-01-18 發送簡訊給我 |
我把.h和lib,dll 放在同目錄下,也設好lib path ,也將lib 加到專案中,但當我想new 一個class 實體時,就會產生以下錯誤
Linker Error] Unresolved external 'BlobAnalysis::~BlobAnalysis()' referenced from D:\C \ADC-CHECK\UNIT1.OBJ [Linker Error] Unresolved external 'BlobAnalysis::BlobAnalysis()' referenced from D:\C \ADC-CHECK\UNIT1.OBJ 請問這是什麼原因呢?感謝感謝
------
....... |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
有可能你的lib不能直接給BCB用,是屬於下面第一種情況的lib
http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=55355 當中提到 (1)Lib 有兩種,第一種是 Win32 Static Library,這種檔案的格式在 VC 與 BCB 是不相同的,而且用 coff2omf 這個工具也無法正確互轉格式,目前也 還沒有看過能夠正確轉換的工具 (因為無法分別清楚得知 VC/BCB 的 Win32 Static Library 內部的詳細資料結構);你所說的那個檔案 (comsupp.lib) ,就是屬於這一種 (2)另外一種通常是專案型態為 Win32 Dynamic-Link Library 的副屬產出物, 例如: 假設你有一個 DLL 的專案名稱叫做 ABC 的話,在編譯、連結完成之 後,除了可以產生 ABC.dll 之外,也會產生 ABC.lib。當 ABC.dll 要給別 人使用的時候,就要把 ABC.dll/ABC.lib/ABC.h 至少這三個檔案提供給對方 ,這樣子對方就可以選擇靜態連結 (會同時用到 ABC.dll/ABC.lib/ABC.h 這 三個檔案) 或動態連結 (只會用到 ABC.dll/ABC.h 這兩個檔案) 來呼叫你的 ABC.dll 內部的 function 所以可以參考下面連結的方式,將lib包成dll讓BCB呼叫 http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=33420 (VC-BCB 整合系列一) 如何由 BCB 使用 VC 所產生的 LIB 及 DLL |
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
你好,
我把taishyang 說的再補充一下: dll 叫 動態連結資料庫,但不一定真「動態」載入記憶體中。 依dll的載入時間可細分為 1) runtime 載入 dll 2) loadtime 載入 dll 第二種其實不太能算真的動態連結…它要配合lib檔(正確講叫 import lib 檔),當程式一開始載入ram時,它也跟著就載入了。 第一種是用loadlibrary的api來真的動態載入…此種無需 import lib 檔,程式隨時載入或卸載。 再論lib檔有分二種: 樓上有說了,但我在深論一點點 1) static lib ,它其實是把obj檔做一些整理而集成,在dos時代常用的方法,是真的靜態資料庫,通常檔案有點大。 2) import lib,這個檔很小,其實只是描述某dll裡的呼叫方式… ,於創造dll時可選擇性的產生這個檔。 >>分別有Win32 Dynamic-Link Library和Win32 Static Library >>對應到BCB,分別是DLL Wizard和Library嗎? 正確! BCB中的Library就是上面的static lib。 ===================引 用 licheer 文 章=================== 請教另一個問題 上面所用的dll,lib...應該算是動態連結,是嗎? 而BCB能像VC一樣使用靜態連結嗎 就是直接把程式碼產生的lib檔加進來用(不會產生dll檔) VC在new Project時, 分別有Win32 Dynamic-Link Library和Win32 Static Library 對應到BCB,分別是DLL Wizard和Library嗎? 謝謝
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |