使用動態鏈結庫的好處這裡就不提了,使用動態鏈結庫往往需要兩個檔案乙個引入庫.lib檔案,乙個.dll檔案。其中引入庫檔案包含匯出函式和變數的名字,.dll檔案中儲存實際的函式和資料。在編譯的時候,只將.lib檔案鏈結.exe檔案中去。.dll檔案在執行時才被鏈結,所以叫做動態鏈結庫。
下邊給出乙個隱式載入的例子:
新建乙個win32 dynamic-link library project,含有dll.h和dll.cpp兩個檔案:
//dll.h
#ifndef dll_h
#define
dll_h
extern"c
"int
__declspec(dllexport)add(
intx,
inty);
#endif
//dll.cpp
#include
"dll.h
"intadd(
inta,
intb)
編譯生成兩個檔案dll.lib和dll.dll。下面測試這個dll。新建乙個工程dlltest。
//dlltest.cpp
#include
<
stdio.h
>
extern"c
"_declspec(dllexport)add(
inta,
intb);
intmain()
然後將dll.lib和dll.dll兩個檔案拷貝到工作目錄,並新增到工程檔案中。如果從編譯器中執行程式就要在工作目錄下包含dll.dll,如果從dubug資料夾下執行exe檔案就必須在exe檔案同目錄下含有dll.dll。dll.lib檔案一定放在工作目錄下,因為是要和其他檔案鏈結的。如果鏈結報錯,嘗試在project-setting-link新增dll.lib一項。編譯通過後執行程式就可以看到我們正確使用了庫中的加法。
下面介紹顯示的載入動態鏈結庫的例子:
未完待續。。。
Sqlmap學習系列之二
1 v 按照官方文件說明,v 意為 verbose verbosity level 0 6 default 1 即 詳細等級包括0 6級,預設為1級 在測試語句最後以 v 等級 出現。經指正,詳細等級是指測試結果的輸出的詳細程度。2 level 按照官方文件說明,level level level ...
leetcode動態規劃系列題解之二
暴力破解思路如下 1 先確定左上角的頂點,從左到右遍歷行列數 行數假設為m,列數假設為n 此時確定乙個矩形的左上角的頂點。記錄該頂點為 i,j 2 以 i,j 為矩形的左上角頂點,從j 1遍歷到n,如果點為0,則繼續,如果為1,則進行下一步。假設為1的點為 i,k 3 以 i,j 為矩形的左上角頂點...
MFC學習筆記12 建立動態DLL庫
新建 win32 dll 專案。新增項 新建 標頭檔案 dll.h 新增項 新建 cpp檔案 dll.cpp dll.h pragma once ifdef dll implement define dll api declspec dllexport else define dll api dec...