动态链接库DLL与静态链接库LIB
1)DLL 作用: 1.有助于促進(jìn)代碼重用和內(nèi)存的效率使用 2.讓程序模塊化,有利于程序的維護(hù) 2.)DLL兩種鏈接方法 1.隱式鏈接 把.dll和.lib文件導(dǎo)入到項目路徑中去 #include"xxxdll.h" #pragma comment(lib,"xxxdll.lib") 2.顯式鏈接 ?DLLFunc dllFunc; ?HINSTANCE hInstLibrary = LoadLibrary("DLLSample.dll"); ?if (hInstLibrary == NULL) ? { ?FreeLibrary(hInstLibrary); ?? } ?dllFunc = (DLLFunc)GetProcAddress(hInstLibrary, "TestDLL") ? if (dllFunc == NULL) ? { ?? FreeLibrary(hInstLibrary); ? } ?dllFunc(123); ?FreeLibrary(hInstLibrary);
3)dll可以有自己的數(shù)據(jù)段但是沒有自己的堆棧,使用dll的進(jìn)程要分dll分配相應(yīng)的內(nèi)存,如果將類封裝成dll,那么使用那個dll進(jìn)程就要分配對象所需的內(nèi)存,如果將函數(shù)分裝成dll,那么使用那個dll中的某個函數(shù)的進(jìn)程只需分配相應(yīng)的函數(shù)的內(nèi)存。如果將類封裝成dll,使用它的時候占用的內(nèi)存時間會比把函數(shù)分裝成dll來使用的時間長。 4)靜態(tài)鏈接庫 1.對函數(shù)庫的鏈接是放在編譯時期完成的 2.程序在運行時與函數(shù)庫再無瓜葛,移植方便 3.浪費空間和資源,因為所有相關(guān)的目標(biāo)文件與涉及到的函數(shù)庫被鏈接和成一個可執(zhí)行文件。
轉(zhuǎn)載于:https://www.cnblogs.com/lailaio/p/4137498.html
總結(jié)
以上是生活随笔為你收集整理的动态链接库DLL与静态链接库LIB的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.net 后台添加CSS、JS、M
- 下一篇: 可伸缩搜索框 旋转实现loading