首頁>Club>
2
回覆列表
  • 1 # 丶網癮少女丶丶

    首先,想要知道動態庫,我們得了解C++/C以及計算機的一些背景知識。一般而言,在Windows下,*.dll檔案就是動態庫檔案。用C++/C開發的程式,在釋出的時候,會出現兩種情況,第一,整個軟體就只有一個檔案,你只要雙擊那個exe檔案,就可以執行。第二,除了exe之外,還有dll等檔案。在這裡,我們假設的檔案只有exe檔案和dll檔案, 不討論什麼圖示之類檔案。只有一個檔案的,庫已經嵌到那個exe裡面。而有很多dll檔案的程式,庫沒有嵌入到exe裡面。所以,你可以看一下,如果那個exe檔案大小非常大,那就說明是靜態連結,在開發的時候是使用靜態庫。如果那個exe非常小,那麼一般是使用的動態庫。那麼問題來了,動態庫與靜態庫相比優勢又是什麼。動態庫節約記憶體,為什麼這麼說呢。假如兩個型別的程式,如果他們都有一個共同使用的dll,那麼在記憶體裡面,只有一份,而不是兩份。如果是使用了靜態庫,這會有兩份,會有很大的浪費空間。當然,使用動態庫還有需要注意的地方。比如,有兩個名字一模一樣的動態庫Qtcore4.dll,但是呢,一個dll是用vs2010編譯器生成的,一個是用vs2015編譯器生成的。如果,exe使用的dll弄錯的話,程式結果會不對或者其他奇葩的問題。以上均是一個大致的講解,細節部分請參考程式設計師的自我修養這本書!

  • 中秋節和大豐收的關聯?
  • 汽車每天第一次打火時間長怎麼回事?