[問題] 如何用xe2呼叫dll內的方法
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB xe2版本
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
目前手上有一個dll檔、h檔和lib檔(但沒有open source code)
目的是為了瞭解dll內某個function的用途,已透過軟體知道dll內所有的function nam
e。
為了符合BCB格式的lib檔,已經將DLL檔透過implib.exe輸出成LIB檔,並加入到BC
B的專案中。
第一次學習怎麼呼叫dll,上網查詢,是說include後就打
extern “C” __declspec(dllimport) bool __stdcall ****(char app)
PS:****=dll內的function name;()內是格式
執行的時候,顯示該行 Declaration syntax error,
請問各位大大,我該如何宣告,又該如何使用dll內的特定dunction呢?
已經爬文和google找好幾天了,但都沒有找到可以解決的方法或是code,
希望可以給我相似的code讓我try try看,非常急成功者將給予5000P答謝。
謝謝
餵入的資料(Input):
預期的正確結果(Expected Output):
希望可以呼叫dll內的特定function,以了解這個方法大概是在幹嘛的(什麼作用即可)
錯誤結果(Wrong Output):
語法錯誤
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
Sent from my Android
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.134.151
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1415267520.A.476.html
※ 編輯: pony0305 (114.136.134.151), 11/06/2014 17:52:53
※ 編輯: pony0305 (114.42.189.29), 11/06/2014 20:14:16
→
11/06 23:08, , 1F
11/06 23:08, 1F
嗯? 我谷歌了但沒有看到相關的資訊耶
※ 編輯: pony0305 (114.42.189.29), 11/06/2014 23:53:20
→
11/07 11:06, , 2F
11/07 11:06, 2F
是半型的,我懷疑是和h檔內容有關,但我又看不出來
我的做法
1.將lib檔透過implib.exe轉檔成BCB可以接受的lib格式(COFF),再加到專案內。
2.inclde .h檔
3.再下一行打extern "c" _declspec(dllimport) bool ccc(char bb)
ps: ccc=function name, bb=自訂變數
bool那段是直接抄襲h檔格式微調的。
流程就這樣,有誤嗎?
※ 編輯: pony0305 (116.59.210.249), 11/07/2014 11:46:41
推
11/07 12:02, , 3F
11/07 12:02, 3F
有喔,有加分號,我是用bcb xe2應該也一樣啊,頭痛!
我把引號重打後,錯誤顯示
only one of a set of overloaded function can be "C"
※ 編輯: pony0305 (116.59.210.249), 11/07/2014 12:46:32
→
11/07 13:03, , 4F
11/07 13:03, 4F
→
11/07 13:04, , 5F
11/07 13:04, 5F
我把extern 後面的"c"拿掉,編輯過了,那我要怎麼呼叫function呢?
※ 編輯: pony0305 (116.59.194.176), 11/07/2014 13:07:11
→
11/07 13:10, , 6F
11/07 13:10, 6F
哦,那我要怎麼呼叫dll內的function呢?
※ 編輯: pony0305 (116.59.194.176), 11/07/2014 13:15:09
→
11/07 13:20, , 7F
11/07 13:20, 7F
我只要一下呼叫,程式的form就開不起來了...,s大知道大概是什麼問題嗎?
※ 編輯: pony0305 (116.59.194.176), 11/07/2014 13:39:41
→
11/07 13:41, , 8F
11/07 13:41, 8F
我有放到專案的資料夾內,我重開專案,現在竟然顯示我電腦缺少那個dll,選項linker
內的RTL我也沒打勾(變成false)了
※ 編輯: pony0305 (116.59.207.211), 11/07/2014 13:55:04
→
11/07 14:03, , 9F
11/07 14:03, 9F
→
11/07 14:06, , 10F
11/07 14:06, 10F
→
11/07 14:10, , 11F
11/07 14:10, 11F
好,我現在試試。
想問問兩位大大,我是想要利用dll內的某個功能,手上目前有dll, h和lib檔,和一份廠
商給的方法文件,dll內有幾個function沒在文件說明內,可能就是我要找的功能,但我
只有方法名稱卻沒有參數,有什麼方法可行測試,那些方法是在做什麼的嗎?
※ 編輯: pony0305 (116.59.207.211), 11/07/2014 14:35:10
→
11/07 19:24, , 12F
11/07 19:24, 12F
前幾天忙別的事出國了,現在又要弄,現在我可以成功弄網路上教學的dll檔,但我呼叫
自己dll的時候(靜態連結),編輯成功但run就沒有反應,我上網查的結果是說找不到dll
檔,程式就不會有反應,但是我已經有把檔案都放到執行目錄下了
※ 編輯: pony0305 (114.136.216.25), 11/11/2014 11:46:15
和本篇問題有點不同了,所以重新發文,待問題解決後,再一起給些p幣給讓我有點頭緒
的s大,謝謝
※ 編輯: pony0305 (116.59.35.13), 11/11/2014 15:41:25
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章