[心得] MFC DLL

看板C_and_CPP (C/C++)作者時間16年前 (2009/09/06 00:32), 編輯推噓2(209)
留言11則, 5人參與, 最新討論串1/1
最近想要研究如何寫dll.. 到處逛 終於知道如何寫mfc dll了 就po一篇心得上來跟大家分享 1.打開vs2005 建立一個MFC DLL專案(假設我名為 MFCDLLTest) 2.加入一個全域的function假設來做 * 10 的效果的 __declspec(dllexport) int multen(int num); 3.在cpp檔實作內容.. 做個意思意思的 __declspec(dllexport) int multen(int num){ return num*10; } 4.compile過後 這個專案就算完成了..此時有3個檔案必須保留下來 MFCDLLTest.h MFCDLLTest.dll MFCDLLTest.lib 這3個檔案保留給 要用此dll的專案 5.建立一個專案來引用此dll(假設名為TestDLL) 6.設定TestDLL的屬性 C++\一般 : 設定其他include目錄 來包含MFCDLLTest.h 連結器\輸入 : 設定其他相依性 來指定 MFCDLLTest.lib 7.在TestDLL當中想要呼叫multen 的檔案 include "MFCTestDLL.h" 8.加入 extern __declspec(dllexport) int multen(int num); 9.接下來就可以直接呼叫 multen 了 這是 當你能取得lib檔時才能使用的方法,如果你沒有lib檔 那就得靠 LoadLibrary 搭配 GetProcessAddress來呼叫dll內容了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.152.29

09/06 08:24, , 1F
這篇要M阿
09/06 08:24, 1F

09/06 13:53, , 2F
用LoadLibrary比較好 不會有name mangling問題
09/06 13:53, 2F

09/06 15:24, , 3F
其實我一直有個問題,剛好藉這篇順便問一下,不管是使
09/06 15:24, 3F

09/06 15:24, , 4F
用static loading或是dynamic loading都必須要知道dll
09/06 15:24, 4F

09/06 15:24, , 5F
檔裡面類別或是函數名稱才可以使用,問題就是如果要引
09/06 15:24, 5F

09/06 15:24, , 6F
用一個不知道裡面有什麼函數或類別時,這樣有辦法使用
09/06 15:24, 6F

09/06 15:25, , 7F
DLL嗎?
09/06 15:25, 7F

09/06 18:39, , 8F
我也不曉得也 但好像有個東西叫dependency walker
09/06 18:39, 8F

09/06 18:40, , 9F
可以幫忙找DLL檔裡面的函數名的樣子..
09/06 18:40, 9F

09/06 20:37, , 10F
這有甚麼好M的阿? @@" 這...
09/06 20:37, 10F

09/06 21:53, , 11F
推一下 dependency walker 感謝
09/06 21:53, 11F
文章代碼(AID): #1AefATqh (C_and_CPP)
文章代碼(AID): #1AefATqh (C_and_CPP)