全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2915
推到 Plurk!
推到 Facebook!

我是個新手,請問一個問題

尚未結案
MyYunSong
一般會員


發表:10
回覆:18
積分:5
註冊:2004-08-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-25 16:57:02 IP:61.235.xxx.xxx 未訂閱
#include  #pragma comment(lib,"comsupp.lib") ... _variant_t index; 在BCB中需用到_variant_t,編釋時 link 說出錯,[Linker Error] 'C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\LIB\COMSUPP.LIB' contains invalid OMF record, type 0x21 (possibly COFF) 我在路徑中加了C:\Program Files\Microsoft Visual Studio\VC98\Lib, 不加的話就說找不到comsupp.lib
Fm
初階會員


發表:19
回覆:66
積分:37
註冊:2003-10-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-26 10:06:13 IP:61.70.xxx.xxx 未訂閱
你好 在本網頁的左上角打入"COFF"或是"OMF"應該可以解決你的疑惑 我也是新手..
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-26 12:02:21 IP:211.23.xxx.xxx 未訂閱
borland的lib是omf格式,而其他編輯器都是產生coff格式的lib, 這時候使用borland安裝目錄下bin資料夾中的coff2omf.exe即可轉換! 將你的lib (假設為test.lib) 與coff2omf.exe 複製到開機目錄下, 通常為c:\ , 開啟dos模式, 輸入 coff2omf -lib:ms test.lib output.lib 將output.lib改名成test.lib。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Anpinos Middle Earth http://anpino.hp.infoseek.co.jp/ -------------------------------
MyYunSong
一般會員


發表:10
回覆:18
積分:5
註冊:2004-08-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-26 12:56:43 IP:61.235.xxx.xxx 未訂閱
我已經按上面的方法轉換了COMSUPP.lib,然後用Add to project選了這個文件,但是編釋時還是說我 [Linker Error] Unresolved external '__tpdsc__ _com_error' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ [Linker Error] Unresolved external '__stdcall _com_issue_error(long)' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ ,我試過在project\option下把路徑加進去也不行, 請問怎麽辦?
Fm
初階會員


發表:19
回覆:66
積分:37
註冊:2003-10-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-26 13:23:43 IP:61.70.xxx.xxx 未訂閱
您好 參考看看 Project/Add to project..選入你的*.lib檔
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-26 13:48:29 IP:203.73.xxx.xxx 未訂閱
引言: 我已經按上面的方法轉換了COMSUPP.lib,然後用Add to project選了這個文件,但是編釋時還是說我 [Linker Error] Unresolved external '__tpdsc__ _com_error' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ [Linker Error] Unresolved external '__stdcall _com_issue_error(long)' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ ,我試過在project\option下把路徑加進去也不行, 請問怎麽辦?
MyYunSong 你好:
(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
(3)針對你的問題,建議你把要用到 _variant_t 的部分,利用 VC 建立一個
   Win32 Dynamic-Link Library (DLL) 專案,這樣子就可以提供給 BCB 使用
   了,可以參考這篇文章中的完整範例做法
   ><>
(>    < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --    發表人 - RaynorPao 於 2004/08/26  14:28:22
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
MyYunSong
一般會員


發表:10
回覆:18
積分:5
註冊:2004-08-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-26 14:08:13 IP:61.235.xxx.xxx 未訂閱
多謝版主大人的解答。我已經看過了相關的文章。 但我有一點不明白,就是_variant_t這個class應該是比較常用的。而且的我程式是抄MSDN上的example。所以應該這個COMSUPP.lib還是比較常見。那它是屬於哪種類型的lib? 還有,就是像之類的windows lib文件還有很多,是不是用BCB引入都要用VC包一下?
MyYunSong
一般會員


發表:10
回覆:18
積分:5
註冊:2004-08-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-08-26 14:18:56 IP:61.235.xxx.xxx 未訂閱
我已經用anpino 的方法coff2omf -lib:ms test.lib output.lib 把COMSUPP.lib轉成了OMF格式,爲什麽還會在LINK時出錯 [Linker Error] Unresolved external '__tpdsc__ _com_error' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ [Linker Error] Unresolved external '__stdcall _com_issue_error(long)' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-08-27 13:32:55 IP:211.23.xxx.xxx 未訂閱
引言: 我已經用anpino 的方法coff2omf -lib:ms test.lib output.lib 把COMSUPP.lib轉成了OMF格式,爲什麽還會在LINK時出錯 [Linker Error] Unresolved external '__tpdsc__ _com_error' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ [Linker Error] Unresolved external '__stdcall _com_issue_error(long)' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ
哇哩咧... 這位可愛的MyYunSong, RaynorPao大所寫的(1),正有解釋,請詳讀。 另外, 發表文章的標題需有意義, 詳見版規。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Anpinos Middle Earth http://anpino.hp.infoseek.co.jp/ -------------------------------
shaudu
一般會員


發表:2
回覆:3
積分:1
註冊:2004-01-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-03-04 12:51:36 IP:210.80.xxx.xxx 未訂閱
引言: 我已經用anpino 的方法coff2omf -lib:ms test.lib output.lib 把COMSUPP.lib轉成了OMF格式,爲什麽還會在LINK時出錯 [Linker Error] Unresolved external '__tpdsc__ _com_error' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ [Linker Error] Unresolved external '__stdcall _com_issue_error(long)' referenced from E:\FIFI\PROGRAM\MY C\The Project\PROXYFORM.OBJ
我也碰到類似的問題, 但是我發現我 include 的 .h 檔案裡面並沒有 「extern “C”」 include 的時候用下面這種方式就可以了 extern “C”{ #include <xxx.h> };
系統時間:2024-04-27 10:11:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!