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

有關dll的問題?

尚未結案
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-20 18:46:10 IP:163.28.xxx.xxx 未訂閱
1. 如果自行開發一個dll供別人使用,那把.dll和.lib給使用者之後,使用者該如何知道他提供了什麼樣的功能?使用者又該如何自己去寫header file? 2. 如果只有.dll和.lib而已,那該如何看到它裡面的程式碼? 3. 如果.dll和.lib和project不在同一目錄,且不用"Add to Project"的方式,請問在程式碼該如何讀進那些檔? 謝謝. 發表人 - nlj859 於 2004/07/20 18:49:02
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-20 20:50:32 IP:211.76.xxx.xxx 未訂閱
nlj859你好: 1.需要有一個Header檔,指明開放的函試的原型,才能正確的呼叫。 2.只能反組譯成組合語言,或是分析他的輸出函式。 3.使用LoadLibrary相關的API,站上也有不少這類的討論串。可以找找使用Dll有那些方法。
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-21 16:03:28 IP:163.28.xxx.xxx 未訂閱
hello,你好,        1.需要有一個Header檔,指明開放的函試的原型,才能正確的呼叫。 但是我只有.dll和.lib,我如何知道要怎麼宣告? 2.只能反組譯成組合語言,或是分析他的輸出函式。 但是我只找出他的函式名稱,並不曉得他該傳什麼進去,也不曉得是以什麼資料型態輸出,請問我該怎麼去知道這些資訊? 發表人 - nlj859 於 2004/07/21 16:04:33
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-22 00:23:15 IP:211.76.xxx.xxx 未訂閱
引言: hello,你好, 1.需要有一個Header檔,指明開放的函試的原型,才能正確的呼叫。 但是我只有.dll和.lib,我如何知道要怎麼宣告? 2.只能反組譯成組合語言,或是分析他的輸出函式。 但是我只找出他的函式名稱,並不曉得他該傳什麼進去,也不曉得是以什麼資料型態輸出,請問我該怎麼去知道這些資訊? 發表人 - nlj859 於 2004/07/21 16:04:33
除非你反組譯輸出函式成組合語言,用"經驗"判斷函式中如何引用參數,並自已寫出函式的宣告(超高難度) 或者如果函式有經過name mingling,或許可以從中推出參數型。 發表人 - pwipwi 於 2004/07/22 00:34:00
anpino
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-22 16:11:06 IP:211.23.xxx.xxx 未訂閱
引言: hello,你好, 但是我只有.dll和.lib,我如何知道要怎麼宣告? 但是我只找出他的函式名稱,並不曉得他該傳什麼進去,也不曉得是以什麼資料型態輸出,請問我該怎麼去知道這些資訊?
那簡單, 在bcb的安裝路徑裡的Bin資料夾中找tdump.exe這個檔, 將這個檔以及你的lib(假設叫test.lib)拷貝到c:\下, 開啟dos視窗, 輸入tdump -d test.lib 然後lib所有的函式與其參數就現形啦!! ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Anpinos Middle Earth http://anpino.hp.infoseek.co.jp/ -------------------------------
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-22 19:15:46 IP:211.76.xxx.xxx 未訂閱
可惜tdump.exe就只能解borland自家的name mingling 只要是宣告成extern "C",或是M$的name mingling還是沒法子解。 發表人 - pwipwi 於 2004/07/22 19:33:37
anpino
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-23 08:16:16 IP:211.23.xxx.xxx 未訂閱
引言: 可惜tdump.exe就只能解borland自家的name mingling 只要是宣告成extern "C",或是M$的name mingling還是沒法子解。
no no ~~~ borland的lib是omf格式,而其他編輯器都是產生coff格式的lib, 這時候一樣使用borland安裝目錄下bin資料夾中的coff2omf.exe即可轉換! ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Anpinos Middle Earth http://anpino.hp.infoseek.co.jp/ ------------------------------- 發表人 - anpino 於 2004/07/23 08:17:12
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-27 12:56:10 IP:219.80.xxx.xxx 未訂閱
請問coff2omf.exe該怎麼用? 可以舉例一下嗎? 謝謝.
anpino
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-07-27 13:49:43 IP:211.23.xxx.xxx 未訂閱
引言: 請問coff2omf.exe該怎麼用? 可以舉例一下嗎? 謝謝.
一樣, 將你的lib (假設為test.lib) 與coff2omf.exe 複製到開機目錄下, 通常為c:\ , 開啟dos模式, 輸入 coff2omf -lib:ms test.lib output.lib 將output.lib改名成test.lib, 即可用tdump 將內有函式與其參數型態全部顯示出來。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Anpinos Middle Earth http://anpino.hp.infoseek.co.jp/ -------------------------------
系統時間:2024-06-26 9:11:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!