前言
此篇文章紀錄如何在 C++
中,使用 LoadLibraryA
/LoadLibraryW
調用 dll。
環境
- Windows 10
- Visual Studio 2017
準備一個 DLL
先自己寫一個 dll,詳細步驟說明請參考:[DLL] 使用 VS 2017 寫包含 DllMain 的 dll。
創建專案
開啟 VS 2017,新開一個專案 File → New → Project
或組合鍵 Ctrl + Shift + N
,點擊 Visual C++
之下的 Windows Desktop
,選擇 Windows Desktop Wizard
,在 Name
輸入好專案名稱後,按 OK
進到下個步驟
Application type 選 Console Application(.exe)
,Addtional options 都不用勾!按下 OK
就會建立好一個專案,預設會自動開啟專案中的 {project_name}.cpp
編寫程式
將下面的程式碼貼到 {project_name}.cpp
中,(參考原始碼:GitHub)
1 |
|
將要匯入的 dll 放到 Debug 目錄下,否則 LoadLibraryA
需要給 dll 的絕對路徑,因為 Debug 模式編譯出來的執行檔都存在此處。
完成
按下 F5,開始 Debug 模式,看到彈出視窗 (MessageBoxA
/MessageBoxW
),就代表載入成功了!顯示順序應為
- 程序建立時被呼叫
- 此函式呼叫成功
- 程序退出時被呼叫