有VC的LIB source code想要轉成BC可以用的 |
尚未結案
|
miloshop
一般會員 ![]() ![]() 發表:8 回覆:22 積分:6 註冊:2004-10-11 發送簡訊給我 |
我想請教一下各位大大:
我在sourceforge找到一個LIB的檔案,專門用在VC上的,可是如果我今天要將此檔案用到BC上,我參考過RaynorPao 大大的一篇文章,但是我要轉換的這幾個VC專案裡,有很多個CLASS,我不知道在VC裡包裝成DLL檔時,需要那些用extern C來把函數export,是整個類別嗎??還是??
以下附此LIB的網站
http://sourceforge.net/project/showfiles.php?group_id=88734&package_id=94704
我是初學LIB,還有很多不懂,請多指教,謝謝各位大大!!
|
smartboss
初階會員 ![]() ![]() 發表:19 回覆:93 積分:42 註冊:2004-12-29 發送簡訊給我 |
引言: 我想請教一下各位大大: 我在sourceforge找到一個LIB的檔案,專門用在VC上的,可是如果我今天要將此檔案用到BC上,我參考過RaynorPao 大大的一篇文章,但是我要轉換的這幾個VC專案裡,有很多個CLASS,我不知道在VC裡包裝成DLL檔時,需要那些用extern C來把函數export,是整個類別嗎??還是?? 以下附此LIB的網站 http://sourceforge.net/project/showfiles.php?group_id=88734&package_id=94704 我是初學LIB,還有很多不懂,請多指教,謝謝各位大大!!您好:以上您所提之問題,不知您有沒有去試過bcb 的implib.exe 這支程式,它是用來呼叫非bcb 發展出來的dll檔案,通常是vc 開發的,轉換後當您需要用到dll檔時,請將這個dll檔放在windows的搜尋path中,不然就是將它跟執行檔放在同一個目錄底下,丫某李A找鼻到檔案喔~~ 呵呵,我也是初學者啦,以上是書上看到的,才學粗淺,有錯誤的請站上前輩指教一下。 |
miloshop
一般會員 ![]() ![]() 發表:8 回覆:22 積分:6 註冊:2004-10-11 發送簡訊給我 |
IMPLIB是把DLL做轉換的吧...我現在是在製作DLL檔時就有問題,而爬過幾篇文章以後,發現coff2omf也不適合VC的那一個LIB(轉出來都固定只有1K,且我選LIB:MS的OPTION),基本上這個sourceforge的檔案是static LIB檔,有關類神經網路的一些函數.因為小弟大概都在BC上發展我的架構,所以想要把VC的LIB引用到BC上去.而現在最大的一個問題就是,之前大大說要將VC包裝成DLL檔之後,再用Implib去做轉換到BC,而我的問題卡在我不會使用,也不知道在這個NN的LIB裡,那些函數應該是我要匯出的,因為其包函了很多個類別和virtural 類別!!最不好的打算就是用BC去CALL VC的程式,然後再引用LIB檔,但是這樣似乎又有點又不以致用!!~~^^
煩請大大多多指教
|
smartboss
初階會員 ![]() ![]() 發表:19 回覆:93 積分:42 註冊:2004-12-29 發送簡訊給我 |
引言: IMPLIB是把DLL做轉換的吧...我現在是在製作DLL檔時就有問題,而爬過幾篇文章以後,發現coff2omf也不適合VC的那一個LIB(轉出來都固定只有1K,且我選LIB:MS的OPTION),基本上這個sourceforge的檔案是static LIB檔,有關類神經網路的一些函數.因為小弟大概都在BC上發展我的架構,所以想要把VC的LIB引用到BC上去.而現在最大的一個問題就是,之前大大說要將VC包裝成DLL檔之後,再用Implib去做轉換到BC,而我的問題卡在我不會使用,也不知道在這個NN的LIB裡,那些函數應該是我要匯出的,因為其包函了很多個類別和virtural 類別!!最不好的打算就是用BC去CALL VC的程式,然後再引用LIB檔,但是這樣似乎又有點又不以致用!!~~^^不好意思,小弟沒有回答到您的問題,非常抱歉。 |
pwipwi
版主 ![]() ![]() ![]() ![]() ![]() 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
miloshop你好:
如果要在BCB中使用VC的library還是有一些需要先考慮的地方,我就我個人的經驗提供給你作參考。 1.如果library裡面只有純C的函數,只要參考過RaynorPao大大的使用教學應該都可以成功的呼叫。用static library或dynamic dll都很解單。 2.如果library裡面有包含class的member function。基本上需要class的header檔給你的程式include,然後在project裡面加入轉換後的lib檔。
但依我一些失敗的經驗,如果source是設計給VC用的,他的header檔在borland裡使用時常常會水土不服。而且轉換後的lib大多無法成功的轉換(就是你提的1k慘劇) 我解決的方法有二個,一個是把整個source code抓回來,用borland compile,並且自已修改程式碼讓borland可以運作,不過這是非不得已的做法,會花相當大的時間。 另一個是在VC裡包裝這個source code,包裝成只提供幾個你要的純C函式library,這樣就可以用包大文章提到的方法使用了。如果你有個朋友熟VC,這工作對他來說應該是易如反掌…事成請他吃大餐就解決了
|
miloshop
一般會員 ![]() ![]() 發表:8 回覆:22 積分:6 註冊:2004-10-11 發送簡訊給我 |
謝謝pwipwi大大:
1.我也有試過直接把那幾個.cpp跟.h檔拿到BC裡,試著去complier.想要在BC裡產生一個static lib.不過產生了過多的warning,許許多多在VC裡只是單純的warning,可以pass過去的,到了BC都變成是error,所以無法complier,我試著去更改project的一些相關設定,但是得到的卻都還是一樣的結果.total有十幾到二十幾個錯誤,尤其是template部份.因為我本身對這個程式也不是說那麼熟,如果真的改到不該改的地方,恐怕後果又更慘!!如果要全部K完,那我很多事情又得暫時停下來,怕不能畢業,所以我也不太敢動!!不知道大大們是不是有在BC可以WORK的類神經網路的CODE,因為我的論文需要用到,讓我能了解一下NN的一些內部演算法要怎麼做呢??
2.我也有拿到一個DLL檔的LIB(在VC裡COMPLER出來的),而且這次用implib去用出來的一個檔有12K(原始大小100多K),這樣算正常嗎??雖然比1K的慘劇要好多了.但是當我參考一些文章時,以及他的example,把這個.lib的檔拿出來用時,卻常常會出現obj檔連結參照錯誤,這是什麼情形呢??不知道你們有沒有遇過.
煩請各位大大幫忙解答
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
對於 VC 的 DLL 如果用 implib 去轉只有少少的 .lib 其實不代表就是不成功,因為如果那個 DLL 本身就是只有 export 少少的 funcion,自然那個 .lib 也是少少的,因為那個 .lib 內只有 function 名稱/參數介面及 DLL 內的進入位置,所以少是很正常的,特別是 1K,好像是轉出最小會是 1K 吧,我看 export function 少的轉出的 .lib 檔案後面都是 00...(我不確定,因為我也常轉出 1K),所以,如果你們以轉出檔案多大是正常來說,我的看法是大於等於 1K 的都是正常。其實只要用可以看二進制檔案的 Editer/Viewer 就可以看到轉出的 .lib 內是否有想要的函式名稱,就知道有沒有正確轉出了。當然,轉出後可不可用是另一個問題
------
http://www.ViewMove.com |
miloshop
一般會員 ![]() ![]() 發表:8 回覆:22 積分:6 註冊:2004-10-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |