推 purpose:只有 dll 沒有 lib 就乖乖用 GetProcAddr 當然網路上也有 05/31 00:06
→ purpose:好幾篇教你怎麼自己產生 lib 的攻略但那只是土法煉鋼而已 05/31 00:08
→ QQ29:但沒有.h 我不知道該怎麼轉function pointer.. 05/31 00:11
→ QQ29:p大連結裡好像有講? 需要這麼精妙的去找喔 ? 05/31 00:13
→ diabloevagto:不需要產生lib啊,你直接放dll近來,要怎樣使用 05/31 00:19
→ diabloevagto:給你dll的人本來就應該要給你了 05/31 00:20
→ diabloevagto:至少我在用dll的時候,compiler那根本不用加什麼 05/31 00:20
→ diabloevagto:只要我在runtime能夠找到dll就好 05/31 00:21
→ diabloevagto:你給的那個網站裡面有api可以參考 05/31 00:23
→ diabloevagto:從這裡面找就知道你要用api要怎樣使用了 05/31 00:23
→ diabloevagto:正常寫的ok的doc是讓你沒有必要再去看code的 05/31 00:25
→ diabloevagto:我用opencv一段時間了,從來沒有去看過他的code 05/31 00:25
→ diabloevagto:我覺得這樣的doc就寫的滿不錯的,挺清楚的 05/31 00:25
→ QQ29:__declspec(dllexport) 所以這個是for implicit link那種 05/31 00:26
→ QQ29:lib .h .dll都給你一起compile的時候用的嗎? 05/31 00:26
→ QQ29:d大說都不加就可以用 也是用getprocaddress? 05/31 00:27
→ QQ29:但是沒.h 他自訂的type我怎麼用阿? 我問題1的疑惑 05/31 00:27
推 purpose:不知道 MyType 是什麼,卻想要使用這個函數,是要怎麼填寫 05/31 00:33
→ purpose:引數 obj 的內容,這不是異想天開嗎 05/31 00:33
→ diabloevagto:GetProcAddress沒錯 05/31 00:39
→ diabloevagto:重點是之前的LoadLibrary要成功load進來就好 05/31 00:41
→ QQ29:@p大 就是不知道這是啥 沒給.h的話不就不能用了嗎 05/31 00:42
→ QQ29:@d 大 所以cv::Mat 這還是要有.hpp才能知道這型態吧? 05/31 00:43
→ QQ29:d大 compile不用加甚麼應該是.h 有寫__declspec(dllimport) 05/31 00:45
→ QQ29:的macro? 05/31 00:46
推 purpose:沒給 .h 不一定不能用某個 dll 匯出函數,前提是你知道其 05/31 01:01
→ purpose:每個引數填什麼,大小多大,而 MyType 顯然未知大小與內容 05/31 01:02
→ diabloevagto:我編出dll跟使用dll的是兩個不同的project 05/31 01:05
→ diabloevagto:.h不會混著用,我不懂為什麼你這麼堅持在.h上? 05/31 01:06
→ diabloevagto:因為我使用opencv的型態所以我一定要include opencv 05/31 01:07
→ diabloevagto:的才了解那個型態是什麼,如果你用內建的型態就不用 05/31 01:07
→ diabloevagto:include任何東西,包涵你build dll的也不用 05/31 01:07
→ diabloevagto:基本上你要使用額外的lib並且有用到特定的型態就要 05/31 01:08
→ james732:很想建議原PO實際上建個DLL,再寫個Client端程式使用它 05/31 01:08
→ diabloevagto:include那個lib的東西,但這跟你使用別的dll是不相 05/31 01:09
→ james732:這些觀念只要動手做過一次,就會知道怎麼回事了吧... 05/31 01:09
→ diabloevagto:關的東西,基本上你直接google關於dll的 05/31 01:09
→ diabloevagto:資料就一大堆了 05/31 01:09
推 purpose:很想建議原PO買本程式設計師的自我修養,裡面就已經完整講 05/31 01:10
→ diabloevagto:你如果只有dll就是要用runtime-linking 05/31 01:10
→ purpose:問題是你好像已經有書了 05/31 01:11
→ diabloevagto:你有.lib是用compiler linking 05/31 01:11
→ diabloevagto:不太知道這兩個名詞對不對,不過我表達compiler 05/31 01:11
→ james732:他一定有<自我修養>,問過好幾次書上的問題了XD 05/31 01:11
→ diabloevagto:跟runtime使用dll時機的不同 05/31 01:12
→ diabloevagto:那本書不太好懂,講了滿多底層的東西... 05/31 01:12
→ diabloevagto:但那本還是滿不錯的一本書 05/31 01:13
→ QQ29:其實我就是看到她第七章...才問的orz 05/31 11:01
→ QQ29:大家講的我都了解 只是我不懂的是問題1, 我看sqlite只給def和 05/31 11:01
→ QQ29:dll 為啥不給.h... 我可以用指令產生.lib 可是還是要拿.h阿 05/31 11:02
→ james732:.h檔只會在編譯的時候用到,載入的時候它不是必要的 05/31 11:09
→ diabloevagto:我上面已經回你一堆了= = 05/31 12:52
→ diabloevagto:你跟本部需要知道.h檔,他網站就有給你api ref了 05/31 12:53
→ diabloevagto:從中找到的東西就跟你.h一樣,而且更為詳細 05/31 12:53
→ diabloevagto:你在裡面就能找到他function怎麼用,回傳是什麼型態 05/31 12:53
→ diabloevagto:你有用到他特殊的型態才要.h或.lib 05/31 12:54
→ diabloevagto:如果他自己的型態只有在他的dll內用到,你不需要碰到 05/31 12:55
→ diabloevagto:那你就不用他的.h那些,反正你c++原本就認得了 05/31 12:55
→ diabloevagto:建議你自己包個dll然後程式call,你會清楚很多的 05/31 13:03
推 purpose:sqlite 連原始碼都給你了,裡面就有 .h 05/31 15:33
→ Arton0306:我用到的lib是都有header檔 若你用的沒header 會不會是 05/31 15:34
→ Arton0306:它有doc 它要你自己打?? 05/31 15:34
→ james732:看原PO的回覆,真的不太像有實際動手操作過 05/31 20:20
→ QQ29:我只是很好奇有沒有只有dll又可以用他自訂type的方法 05/31 22:28
→ QQ29:不然sqlite應該直接包入.h在zip才是 05/31 22:29
→ QQ29:結果還是要去找.h來build.. 05/31 22:30