程序文件夹下常见的.dll文件、lib文件夹、bin文件夹理解
今天來捋一捋那些安裝程序后你不認識,但是它都快認識你了的文件
提前話
今天所說的這些文件后綴、命名等都是windows平臺的規范,例如dll后綴的文件,是和動態庫相關的文件,網上大多文章都會把它和C/C++語言/Linux關聯起來,會讓人覺得,只有C/C++ 才有動態庫,其實不然:
①動態/靜態庫是通用的,DLL是windows平臺的
②基于Windows平臺的程序都可以這樣命名
③不僅限C語言,Delphi, Fortran, C#等等,凡是本地執行的都可以使用
④Java通過JNI也可以調用
⑤對應的,linux平臺是so庫
⑥而Java是通過虛擬機運行的,所以和操作系統脫離,這些庫是操作系統層面的內容
1.".ini"文件 — 初始化文件
“.ini” 文件是Initialization File的縮寫,即初始化文件 ,是windows的系統配置文件所采用的存儲格式,統管windows的各項配置
.ini , .inc之類的文件,一般是放一些常量或數據庫鏈接語句等,再在需要的頁面包含進去,和直接命為 asp 是沒什么區別的。
INI文件由節、鍵、值組成。
- 節:[section] ------因為INI文件可能是項目中共用的,所以使用[section]段名來區分不同用途的參數區。
- 參數(鍵=值):name=value
- 注解使用分號表示(;)。在分號后面的文字,直到該行結尾都全部為注解。
- 栗子
2.bin文件夾
bin是二進制binrary的英文縮寫
話說回來,就是可執行的二進制文件,你電腦嘞腦闊子不是只認嘚0和1嘛~
3.".lib"文件和".dll文件"
在了解".lib"文件之前,我們得清楚幾個點
①首先,程序編譯和運行是兩個過程
②其次,語言分兩種,編譯型語言和解釋型語言:
a.編譯型語言里程序執行一般是有編譯->鏈接這兩個過程的
b.解釋型語言沒有這兩個過程,你可以說沒有鏈接過程,也可以說隨時都在鏈接
③大家看到的靜態鏈接、動態鏈接實際都發生在編譯階段!
④鏈接簡單來說就是把編譯的代碼里的對象符號與軟件、庫中的對象關聯的過程
lib文件是靜態鏈接庫文件,其中存放的是函數調用的信息,在windows操作系統中起到鏈接程序和函數的作用。其意義在于代碼重用,程序員將常用的功能寫成函數,保存為lib文件,在以后編程要實現這些功能的時候,就不需要再重新編寫代碼,而是直接調用寫好的lib文件,這很大程度上減輕程序員的負擔。
dll文件是動態鏈接庫文件,你可以簡單的把DLL看成一種倉庫,它提供給你一些可以直接拿來用的變量、函數或類。
對于動態鏈接,其在運行時,會由操作系統動態加載所需的庫
動態鏈接和靜態鏈接主要區別就是加載過程
靜態鏈接庫與動態鏈接庫都是共享代碼的方式,如果采用靜態鏈接庫,則無論你愿不愿意,lib中的指令都被直接包含在最終生成的EXE文件中了。但是若使用DLL,該DLL不必被包含在最終EXE文件中,EXE文件執行時可以“動態”地引用和卸載這個與EXE獨立的DLL文件。靜態鏈接庫和動態鏈接庫的另外一個區別在于靜態鏈接庫中不能再包含其他的動態鏈接庫或者靜態庫,而在動態鏈接庫中還可以再包含其他的動態或靜態鏈接庫。
這里大家不用太過于糾結,鏈接是個弱概念,網上的概念可能會有不同,是正常的。
圣誕節了,發現一篇關于解釋型語言和編譯型語言的區別的文章,作為小彩蛋~
https://blog.csdn.net/zhu_xun/article/details/16921413
總結
以上是生活随笔為你收集整理的程序文件夹下常见的.dll文件、lib文件夹、bin文件夹理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第24章 让唯美的雪花飘扬——三维粒子系
- 下一篇: 程序员准备跳槽了,如何选择下一家IT公司