參考MSDN:
http://msdn.microsoft.com/en-us/library/bb384835.aspx
C++ 如何建立可以重覆使用的程式碼,方式有三種:
1. Dynamic link libraries(*.dll)
2. Static libraries(*.lib)
3. Managed assemblies
這三種有什麼不同呢?
首先先區分12及3的不同,dll及lib只能在c++中重覆使用,如果今天想建立一個讓.NET語言(c#、Visual Basic)都可以使用的library,就只能使用第三種方式。
而1跟2都是在c++中使用的,他們的區別在於static library會在程式碼連結(*1*)時就將程式碼中呼叫到的function取代為library中真正的程式碼,也就是說利用static library編譯出的可執行檔中,已經包含了static library裡面的程式碼了。
而dll則不同 ,雖然使用dll函數的程式碼一樣會在程式碼連結階段去讀取*.lib,但是並沒有將原始的程式碼替換為dll中的程式碼,這個時候僅僅只有確定function的名稱而已,要等到程式執行時,才會真正使用這段程式碼,這也就是dynamic所代表的意思。
在這三種方式裡,最廣為使用的是dll的方式。
(*1*)程式碼編譯成可執行檔有兩步驟:
原始碼 --編譯--> 中間檔(機器語言) --連結--> 可執行檔
沒有留言:
張貼留言