動態連結函式庫(Dynamic Linking Libraries,DLLs)Part II

沒想到廢話太多已經到達字數上限…
故此篇接續上篇繼續更新
很慢的速度就是

顯式連結範例

1 、 載入DLL
使用 LoadLibrary 載入

2 、 宣告對應的函式指標
依照上文DLL裡面的函式來說
我們需要準備 2 個函數指標

3 、 取得位置
使用巨集 GetProcAddress 取得

 // 兩種函式指標
 typedef int (*LPWHOBIG)(int a, int b);
 typedef int (*LPWHOSMALL)(int a, int b);

 // 宣告指標
 LPWHOBIG fn_WhoBig = NULL;
 LPWHOSMALL fn_WhoSmall = NULL;

 // 接受DLL實體用
 HINSTANCE hDLL = NULL;

 // 載入
 hDLL = LoadLibrary("test.dll");
 if ( !hDLL )
     return false;

 // 取得
 fn_WhoBig = (LPWHOBIG)GetProcAddress(hDLL, "WhoBig");
 fn_WhoSmall = (LPWHOSMALL)GetProcAddress(hDLL, "WhoSmall");

 // 使用
 fn_WhoBig(1, 5);


參考:


— To Be Continue

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.