Windows下動態庫顯示與隱式調用以及靜態庫的調用

來源:互聯網
上載者:User

動態庫的建立:

1  在VC裡建立一個Win32項目,比如項目名稱叫MyTestDLL,選擇DLL和空項目,確定,一個空的DLL工程便建立好;

2  添加標頭檔和源檔案以及def檔案,之所以使用def檔案,是因為對於C++裡面的函數,編譯器會產生原函數名不同的名字,使用def檔案可以直接避免這個問題,也不需要定義__declspec(dllexport)和__declspec(dllimport)這些修飾符。

 

定義要在DLL裡包含的函數,比如:

int Add(int a, int b)

{

    return a + b;

}

在def檔案裡,添加要匯出的函數名,如下格式:

然後編譯工程,就會產生MyTestDLL.dll和MyTestDLL.lib這兩個檔案。

 

對於動態庫的顯示調用,在編譯時間,直接使用一個dll檔案,然後在程式中LoadLibrary即可。

對於隱式調用,在編譯時間,需要同時有標頭檔、dll檔案和lib檔案,並且也需要和調用靜態庫一樣,使用預先處理指令

#pragma comment(lib, "libname")

 

靜態庫的建立很簡單,在調用工程中,編譯時間,只需要標頭檔和lib檔案,也需要上面的預先處理指令,注意,“libname”可以帶也可以不帶“.lib”尾碼。

 

對於動態庫,調用工程不管編譯時間採用的是隱式還是顯示,運行時都需要dll檔案;對於靜態庫,調用工程則不需要在運行期引用靜態庫檔案。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.