關於影像的程式,是在執行build的時候,連結出了問題,下面有參考code及擋案,請問要如何解決﹖ |
尚未結案
|
david_123
一般會員 發表:3 回覆:3 積分:1 註冊:2007-05-15 發送簡訊給我 |
#include "camera_etb.h"
#include "CameraModuleDLL.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; unsigned short sensor; unsigned long set_sensor,address; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { HWND display; DLL_DefineCommunicateMethod(0); DLL_PowerOnActiveSensor(display,sensor); DLL_StartLiveView(); DLL_SetDisplayOut(False); DLL_SetCameraI2CAddressToMCU(address); DLL_SetCameraSensorTypeToMCU(set_sensor); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { DLL_StopLiveView(); DLL_PowerOffActiveSensor(); } [Linker Error] 'D:\DOCUMENTS AND SETTINGS\STANLEY CHUNG\桌面\TEST PROGRAM\CAMERA\HXTLVLIB.LIB' contains invalid OMF record, type 0x21 (possibly COFF) |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
你是否以BCB去呼叫VC++COMPILE出來的DLL?BCB的BINARY EXECUTABLE是OMF格式,而VC的是COFF格式,因此,使用呼叫前要轉換。
如果是,請在KTOP搜尋如何以BCB呼叫VC的DLL函數檔。 ===================引 用 david_123 文 章=================== #include "camera_etb.h" #include "CameraModuleDLL.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; unsigned short sensor; unsigned long set_sensor,address; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { HWND display; DLL_DefineCommunicateMethod(0); DLL_PowerOnActiveSensor(display,sensor); DLL_StartLiveView(); DLL_SetDisplayOut(False); DLL_SetCameraI2CAddressToMCU(address); DLL_SetCameraSensorTypeToMCU(set_sensor); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { DLL_StopLiveView(); DLL_PowerOffActiveSensor(); } [Linker Error] 'D:\DOCUMENTS AND SETTINGS\STANLEY CHUNG\桌面\TEST PROGRAM\CAMERA\HXTLVLIB.LIB' contains invalid OMF record, type 0x21 (possibly COFF) |
david_123
一般會員 發表:3 回覆:3 積分:1 註冊:2007-05-15 發送簡訊給我 |
void __fastcall TForm1::Button3Click(TObject *Sender)
{ HINSTANCE hInst; hInst = LoadLibrary("HxtLVLib.DLL"); (FARPROC &)ShowImage=GetProcAddress(hInst,"ShowImage"); ShowImage(); FreeLibrary(hInst); } [Linker Fatal Error] Fatal: Unable to open file 'HXTLVLIB.LIB' 以上的程式是直接呼叫dll,可是寫了之後卻發現Linker的錯誤,請問一下我程式那裡要做修正﹖ |
soonbedone
一般會員 發表:1 回覆:9 積分:7 註冊:2005-03-12 發送簡訊給我 |
建議您查看一下 主選單裏的 Project --> Options --> Packages 中是否有引用到
那個特定的 Lib 函式庫, 卻未把它的路徑設定進來, 導致 Linker 找不到該檔案.. Delphi 不是秘密警察啦 ! 她不會聰明到看了 LoadLibrary() 就自己知道是去聯結 .Lib 檔 ! (LoadLibrary 是 Load DLL 進來跟靜態聯結不同; 或建議你換個常用的方式, 把 VC 的那個 .Lib Export 成為只含有函式宣告的 BC 專用 .Lib, 並且手動加一些宣告到你的程式碼中, 這樣聯結就會 pass 了, 然後你實際上是用 LoadLibrary 去動態聯結)
------
~~ 縱想要有, 天不從人願 ~~ |
harpist
資深會員 發表:3 回覆:251 積分:430 註冊:2002-10-03 發送簡訊給我 |
|
soonbedone
一般會員 發表:1 回覆:9 積分:7 註冊:2005-03-12 發送簡訊給我 |
sorry, 小弟我也忘了, 是快七年前遇到類似這種事, 詳細處理方式我也淡忘了, 所以在下所說的可能有點不對, 僅供參考...
那時是我大哥在電信總局寫程式 (BCB, Delphi, power builder..), 遇到廠商的刷卡機所附的是 VC 的 .Lib 因為廠商是跟美國進貨的, 廠商他們不會電腦也愛莫能助... (但有 .DLL 可供呼叫, 算是一線生機) 因為老弟我在家當宅男, 閒閒沒事, 就試了一下... ---- 首先, 用 TLIB.EXE 觀察那個 VC 的 .LIB 裏的 .OBJ 有哪些是你想要的, 然後把他的 .OBJ 抓出來 再把想要的這些 .OBJ 運用 IMPLIB.EXE 包裝成供靜態載入 DLL 專用的 .LIB (後來我大哥說, 用 IMPDEF.exe 從 .DLL 抓出其 .DEF 檔, 可以省下手打函式定義的時間) ---- 以上載入 DLL 的方式, 是謂靜態載入 DLL, 請參閱以下網址文章... http://www2.borland.com.tw/tw/td001018.html -->請看 Implicitly Link ( 隱 式 聯 結 ) 又 稱 靜 態 載 入 ... 會手動做這種事的人, 不是玩電腦很多年的老鳥 (像我大哥玩了 20 多年, 我也差不多了[不過我當醫生很忙, 要打折一半, 算 9 年好了]...), 不然就是駭客一族, 手邊的資料相當有限, 公司常要你反組譯別人的原始碼, 然後做相容產品....
------
~~ 縱想要有, 天不從人願 ~~ |
soonbedone
一般會員 發表:1 回覆:9 積分:7 註冊:2005-03-12 發送簡訊給我 |
------
~~ 縱想要有, 天不從人願 ~~ |
david_123
一般會員 發表:3 回覆:3 積分:1 註冊:2007-05-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |