溫馨提示:這篇文章已超過660天沒有更新,請注意相關的內(nèi)容是否還可用!
SBK Creative Labs的Soundfont 1.0 Bank文件;(Soundblaster)/EMU SonndFont v1.x Bank文件 2 SBL Shockwave Flash對象文件 0v4'hN SC2 Microsoft Schedule+7文件格式;SAS目錄(Windows 95/NT、OS/2、Mac) MEzi SC3 SimCity 3000保
帶鋸床型號的1.GDGZ等等前綴 2.包括后面的數(shù)字 3.以及最后的后綴H HX S等這些都表示什么意思?
4mm);25mm長度內(nèi)的齒數(shù)18-22齒。3、粗鋸齒,相應的齒距為(1。8mm);25mm長度內(nèi)的齒數(shù)14-16齒。鋼鋸條的分類有哪些雙金屬手鋸條:用于切割管件、實心體、木材、塑料及所有可加工金屬??篃峒翱鼓p引性更高,壽命更長
鋸條的寬度規(guī)格不同厚度是不同的,看你用的是多寬的鋸條,寬度定了,厚度也就定了。這里寬度和厚度基本是固定的如下:27*0.90 或者 0.95 34*1.07 41*1.30 54*1.60 65*1.60 80*1.60 成都遠景數(shù)控
1、4230的鋸床,鋸切寬度至少有300毫米,理論上你可以裝夾5根一排的至少3層,也就是每次能裝夾15根至少(需要有從上面的壓緊裝置配合裝夾)。在實際使用中,這樣鋸切很難實現(xiàn)。4230鋸床所用鋸條基本都是27毫米寬,鋸切這么
規(guī)常用規(guī)格有(直徑×厚度):φ200×2.5mm、φ250×3mm、φ310×3mm、φ315×4mm等。生產(chǎn)標準是:GB/T 6120-1996 【碳鋼鋸條】用于切割管件、實心體、木材、塑料及所有可加工金屬。成本低,比較通用。使用要求 ⒈工作時
型號/名稱 GB4232/帶鋸床 鋸切能力 圓材320mm,板材320*320mm 鋸條線速度 22,40,60 m/min (3級)工作夾緊方式 液壓 帶鋸規(guī)格 1.1x 34x 4115mm 主電機功率 3.0kW,380V,50HZ 油泵電機功率 0.75kW,380V,50HZ
正川4232鋸床用什么規(guī)格的鋸條
鋸條規(guī)格:4950*41*1.3 附上官網(wǎng)數(shù)據(jù)如下 品牌:富士泰 型號:FS4240 類型:帶鋸床 主電機功率:4(kw)重量:1950(kg)外形尺寸:L2660(2700)*W1300*H1720(mm)最大鋸削直徑:○400 □W600*H400(mm)切割縫寬度
富士泰鋸床fs4240, 用多長帶鋸條?
4應該是鋸床形式,比如是4代表臥式,5代表立式這樣的 后面的0或者2應該是加工形式,比如2代表金屬帶鋸床,3代表木料帶鋸床這樣的 再后面的2位數(shù),我可以確定它們代表主參數(shù),38代表可以切割直接380mm的圓鋼或380x380的方管,
金屬帶鋸床型號中的4038和4228是什么意思
70到90斤。該鋸床的重量是在70到90斤。弓鋸床是用于鋸切工件的機床,裝有鋸條的鋸弓作往復運動,以鋸架繞一支點擺動的方式進給,其機床結構簡單,體積小,但效率較低。
便攜式的不是廠房里的子母鋸?普通工地上的連鋸子大概有120到130斤!子母鋸大概700斤
g72弓鋸床有多重
測控技術與儀器專業(yè)就業(yè)方向 測控技術與儀器專業(yè)是信息科學技術的源頭,是光學、精密機械、電子、計算機與信息技術多學科互相滲透而形成的一門高新技術密集型綜合學科。她的專業(yè)面廣,小到制造車間的檢測,大到衛(wèi)星火箭發(fā)射的監(jiān)控。本專業(yè)最令人感興趣的方向恐怕要數(shù)光盤生產(chǎn)了,很多同學認為這屬于制造業(yè),實際上由于對精度的嚴格要求,使她歸于測控技術與儀器專業(yè)。 測控技術與儀器專業(yè)就業(yè)方向如下 1、智能儀器儀表方向 這個方向主要是從事儀器儀表,電子產(chǎn)品的軟件,硬件研發(fā),測試,也可以從事儀表自動控制等方面的工作,這是一個偏向于電子的方向,最好要學好C語言,匯編語言,單片機,labview等并有相關的實踐開發(fā)經(jīng)驗 2、測試計量技術與儀器方向 這個主要是從事計量,測試檢測,品質(zhì)檢驗等的工作,我覺得這個方向?qū)W術研究的成分比較重一點,一般本科生比較難找到較合適的工作。 3、計算機測控技術方向 這個方向有一個有一個亮點的課程就是圖象檢測與處理,是一個比較偏向與計算機的方向,與第二個有相類似的地方都是從事的檢測測量,只是后者比較偏向于計算機操作平臺的運用。測控本身是一個專業(yè),要學的東西很多,光機電算都有,壓力很大,課時很多,大一大二公共基礎課,大三大四專業(yè)課及專業(yè)選修課;基本上所有的物理學一遍,力學分:材料力學,理論力學;光學:應用光學,物理光學,光學CAD等;電學:模擬電路,數(shù)字電路;機械:工程制圖,機械原理等;計算機:C語言,單片機,微機原理; 還有大四分各種方向后的專業(yè)選修課,太多了,不一一列舉,如光學工藝,檢測技術 以上所有的學科都會學習,分散在大一到大四不等,我們當時大二大三,基本天天從早到晚上課,從早八點到晚6點的,考試壓力也比其他院壓力大,曾經(jīng)四天連續(xù)考7科,基本上意味著,天天熬夜看書 wish you luck
硬件和軟件的區(qū)別: 一、軟件是一種邏輯的產(chǎn)品,與硬件產(chǎn)品有本質(zhì)的區(qū)別 硬件是看得見、摸得著的物理部件或設備。在研制硬件產(chǎn)品時,人的創(chuàng)造性活動表現(xiàn)在把原材料轉(zhuǎn)變成有形的物理產(chǎn)品。 而軟件產(chǎn)品是以程序和文檔的形式存在,通過在計算機上運行來體現(xiàn)他的作用。 在研制軟件產(chǎn)品的過程中,人們的生產(chǎn)活動表現(xiàn)在要創(chuàng)造性地抽象出問題的求解模型,然后根據(jù)求解模型寫出程序,最后經(jīng)過調(diào)試、運行程序得到求解問題的結果。整個生產(chǎn)、開發(fā)過程是在無形化方式下完成的,其能見度極差,這給軟件開發(fā)、生產(chǎn)過程的管理帶來了極大的困難。 二、軟件產(chǎn)品質(zhì)量的體現(xiàn)方式與硬件產(chǎn)品不同 質(zhì)量體現(xiàn)方式不同表現(xiàn)在兩個方面。硬件產(chǎn)品設計定型后可以批量生產(chǎn),產(chǎn)品質(zhì)量通過質(zhì)量檢測體系可以得到保障。但是生產(chǎn)、加工過程一旦失誤。 硬件產(chǎn)品可能就會因為質(zhì)量問題而報廢。而軟件產(chǎn)品不能用傳統(tǒng)意義上的制造進行生產(chǎn),就目前軟件開發(fā)技術而言,軟件生產(chǎn)還是“定制”的,只能針對特定問題進行設計或?qū)崿F(xiàn)。但是軟件愛你產(chǎn)品一旦實現(xiàn)后,其生產(chǎn)過程只是復制而已,而復制生產(chǎn)出來的軟件質(zhì)量是相同的。 設計出來的軟件即使出現(xiàn)質(zhì)量問題,產(chǎn)品也不會報廢,通過修改、測試,還可以將“報廢”的軟件“修復”,投入正常運行??梢娷浖馁|(zhì)量保證機制比硬件具有更大的靈活性。 三、軟件產(chǎn)品的成本構成與硬件產(chǎn)品不同 硬件產(chǎn)品的成本構成中有形的物質(zhì)占了相當大的比重。就硬件產(chǎn)品生存周期而言,成本構成中設計、生產(chǎn)環(huán)節(jié)占絕大部分,而售后服務只占少部分。 軟件生產(chǎn)主要靠腦力勞動。軟件產(chǎn)品的成本構成中人力資源占了相當大的比重。軟件產(chǎn)品的生產(chǎn)成本主要在開發(fā)和研制。研制成功后,產(chǎn)品生產(chǎn)就簡單了,通過復制就能批量生產(chǎn)。 四、軟件產(chǎn)品的失敗曲線與硬件產(chǎn)品不同 硬件產(chǎn)品存在老化和折舊問題。當一個硬件部件磨損時可以用一個新部件去替換他。硬件會因為主要部件的磨損而最終被淘汰。 對于軟件而言,不存在折舊和磨損問題,如果需要的話可以永遠使用下去。但是軟件故障的排除要比硬件故障的排除復雜得多。軟件故障主要是因為軟件設計或編碼的錯誤所致,必須重新設計和編碼才能解決問題。 軟件在其開發(fā)初始階段在很高的失敗率,這主要是由于需求分析不切合實際或設計錯誤等引起的。當開發(fā)過程中的錯誤被糾正后,其失敗率便下降到一定水平并保持相對穩(wěn)定,直到該軟件被廢棄不用。在軟件進行大的改動時,也會導致失敗率急劇上升。 五、大多數(shù)軟件仍然是定制產(chǎn)生的 硬件產(chǎn)品一旦設計定型,其生產(chǎn)技術、加工工藝和流程管理也就確定下來,這樣便于實現(xiàn)硬件產(chǎn)品的標準化、系列化成批生產(chǎn)。 由于硬件產(chǎn)品具有標準的框架和接口,不論哪個廠家的產(chǎn)品,用戶買來都可以集成、組裝和替換使用。 盡管軟件產(chǎn)品復用是軟件界孜孜不倦追求的目標,在某些局部范圍內(nèi)幾家領軍軟件企業(yè)也建立了一些軟件組件復用的技術標準。 例如,OMG的CORBA,mICROSOFT的COM,sun的J2EE等,但是目前還做不到大范圍使用軟件替代品。大多數(shù)軟件任然是為特定任務或用戶定制的。 擴展資料: 硬件: 計算機的硬件是計算機系統(tǒng)中各種設備的總稱。計算機的硬件應包括5個基本部分,即運算器、控制器、存儲器、輸入設備、輸出設備,上述各基本部件的功能各異。運算器應能進行加、減、乘、除等基本運算。存儲器不僅能存放數(shù)據(jù),而且也能存放指令,計算機應能區(qū)分是數(shù)據(jù)還是指令。 控制器應能自動執(zhí)行指令。操作人員可以通過輸人、輸出設備與主機進行通信。計算機內(nèi)部采用二進制來表示指令和數(shù)據(jù)。操作人員將編好的程序和原始數(shù)據(jù)送人主存儲器中,然后啟動計算機工作,計算機應在不需干預的情況下啟動完成逐條取出指令和執(zhí)行指令的任務。 軟件: 電腦的外觀、主機內(nèi)的元件都是看得見的東西,一般稱它們?yōu)殡娔X的「硬件」,那么電腦的「軟件」是什么呢?即使打開主機,也看不到軟件在哪里。既看不見也摸不到,聽起來好像很抽象,但是,如果沒有軟件,就像植物人一樣,空有軀體卻無法行動。 當你啟動電腦時,電腦會執(zhí)行開機程序,并且啟動系統(tǒng)」,然后你會啟動「Word」程序,并且打開「文件」來編輯文件,或是使用「Excel」來制作報表,和使用「IE」來上網(wǎng)等等,以上所提到的操作系統(tǒng)、打開的程序和文件,都屬于電腦的「軟件」。 軟件包括: 1、應用軟件:應用程序包,面向問題的程序設計語言等 2、系統(tǒng)軟件:操作系統(tǒng),語言編譯解釋系統(tǒng)服務性程序 硬件與軟件的關系: 硬件和軟件是一個完整的計算機系統(tǒng)互相依存的兩大部分,它們的關系主要體現(xiàn)在以下幾個方面。 1、硬件和軟件互相依存 硬件是軟件賴以工作的物質(zhì)基礎,軟件的正常工作是硬件發(fā)揮作用的唯一途徑。計算機系統(tǒng)必須要配備完善的軟件系統(tǒng)才能正常工作,且充分發(fā)揮其硬件的各種功能。 2、硬件和軟件無嚴格界線 隨著計算機技術的發(fā)展,在許多情況下,計算機的某些功能既可以由硬件實現(xiàn),也可以由軟件來實現(xiàn)。因此,硬件與軟件在一定意義上說沒有絕對嚴格的界面。 3、硬件和軟件協(xié)同發(fā)展 計算機軟件隨硬件技術的迅速發(fā)展而發(fā)展,而軟件的不斷發(fā)展與完善又促進硬件的更新,兩者密切地交織發(fā)展,缺一不可。 參考資料: 軟件-百度百科 硬件-百度百科
一分鐘了解硬件
你好: 我們的GZ4235的帶鋸床用的是:3860*34*1.1的雙金屬帶鋸條。
每一種的品牌的鋸床型號不同所使用的鋸條長度也不是一樣的!
文件后綴名詳解 ★什么是文件的后綴名 說起來Windows工作界面下的文件名簡直是隨心所欲,比如:某編輯部的2000年工作計劃。文件名即可用中文直接表達,而且長度最長可達256個字符,讓人看起來真是一目了然。然而在Windows環(huán)境中,安裝的軟件中卻大量存在著類似CALENDAR.EXE、GAMES.GRP等等的文件名,這又是為什么呢?原來這些文件名都是根據(jù)DOS環(huán)境的文件名命名規(guī)則而定的。 ★DOS環(huán)境下的文件后綴名 在DOS下,文件名采用8+3結構,即:最長8位的文件名,由小數(shù)點分隔后再跟上最長3位的后綴名,如:READ.ME、SETUP.EXE,一般情況下文件名不允許使用漢字,只能由字母、數(shù)字和一些符號組成。如READ.ME用中文理解就是"讀我",即提示用戶在使用軟件前先看看這個文件的內(nèi)容,以獲取更多的提示信息。而更重要的是,DOS下規(guī)定用后綴名來區(qū)分各種不同的文件。 在DOS下最容易遇到的首先是可執(zhí)行文件,后綴名有兩類:*.exe、* (此處的*表示文件名任意),它們是由匯編語言或其它高級語言編出的程序經(jīng)過編譯后直接在DOS下運行的文件。有時由于軟件功能多、內(nèi)存偏小,不能一次性全部調(diào)入內(nèi)存還可能有同文件名的ovl文件,如ws.exe、ws.ovl。另外還有一種文件可以直接運行,*.bat,即批處理文件:其中有許多命令或可執(zhí)行文件名,主要用于提高工作效率;最有用的是Autoexec.bat,這個文件在開機時會被自動執(zhí)行(自動執(zhí)行在英文中就是Automatically execute)。而另外一種可以加載但不能直接運行的文件即是系統(tǒng)擴展管理文件*.sys(sys即系統(tǒng)system):它主要提供某些非標準設備如鼠標、擴充內(nèi)存等的驅(qū)動程序,如mouse.sys、himem.sys。為了統(tǒng)一管理還專門規(guī)定了一個config.sys的文本文件來一次性地在開機時自動調(diào)入這些必需的設備驅(qū)動程序,這些文件一旦被誤刪或換名或被病毒侵襲則將直接導致系統(tǒng)工作不正常。 DOS下字處理產(chǎn)生的文件原本是可以不用后綴的,但人們常用*.txt表示(txt即文本text)。被所有的平臺和所有應用程序支持。而為了管理方便,人們也可以用自己的名字做后綴來表示是自己建的文本文件,如我輸入的很多文章即為*.mcj,為了便于用戶在意外刪掉原文件的情況下能盡快恢復原文件,許多字處理系統(tǒng)都提供了一種自動備份的功能,如我第二次編輯JIHUA.MCJ時(JIHUA:計劃的漢語拼音),系統(tǒng)會先拷貝一份原文件為JIHUA.BAK。使用具有特殊格式功能的字處理軟件,如求伯君先生早年推出的WPS,就會規(guī)定其后綴為.wps,用以標識是用WPS生成的文本文件。當使用字處理軟件編輯高級語言程序時,后綴通常為相應語言的前三個字母(如:*.BAS即BASIC語言源程序,*.PAS為PASCAL語言程序,*.FOR為Fortran語言程序,*.C即為C語言,*.ASM即為匯編語言程序)。 伴隨著可執(zhí)行文件常附有以下幾類文件:*.HLP即幫助文件(help)、*.CFG即配置文件(config)、*.DAT即數(shù)據(jù)文件(data)、*.LOG即日志文件(log)、*.TMP為臨時文件(temporal)。 ★Windows環(huán)境下的文件后綴名 絕大多數(shù)DOS文件名后綴在Windows下繼續(xù)有效,但Windows本身也引出了許多種嶄新的后綴名,如:*.drv為設備驅(qū)動程序(Driver)、*.fon和*.fot都是字庫文件、*.grp為分組文件(Group)、*.ini為初始化信息文件 (Initiation)、*.pif為DOS環(huán)境下的可執(zhí)行文件在Windows下執(zhí)行時所需要的文件格式、*.crd即卡片文件(Card)、*.rec即記錄器宏文件(Record)、*.wri即文本文件(Write),它是字處理write.exe生成的文件、*.doc和*.rtf也是文本文件(Document),它們是Word產(chǎn)生的文件、*.cal為日歷文件、*.clp是剪貼板中的文件格式、*.htm和 *.html即主頁文件、*.par為交換文件、*.pwl為口令文件(Password)等等。 ★圖像文件的后綴名 進入多媒體世界后,大家會看到各種各樣精彩的圖片,會發(fā)現(xiàn)許多種后綴名。的確,由于各個公司在開發(fā)圖形有關的軟件時都自制標準,導致今日在圖形方面有太多的格式,以下就是常見的幾種格式: 首先是一種位圖文件格式,它是一組點(像素)組成的圖像,它們由圖像程序生成或在掃描圖像時創(chuàng)建。主要有Windows位圖(.BMP):由Microsoft公司開發(fā),它被Windows和Windows NT平臺及許多應用程序支持。支持32位顏色,用于為Windows界面創(chuàng)建圖標的資源文件格式,光標(.CUR、.DLL、.EXE):資源文件格式,用于創(chuàng)建Windows界面的光標。OS/2位圖(.BMP):Microsoft公司和IBM開發(fā)的位圖文件格式。它為各種操作系統(tǒng)和應用程序所支持。支持壓縮,最大的圖像像素為64000×64000。畫筆(.PCX):由Zsoft公司推出,它對圖像數(shù)據(jù)也進行了壓縮,可由PCX生成。用于Windows的畫筆。支持24位顏色,最大圖像像素是64000×64000。支持壓縮。圖形交換格式: Graphics Interchage format(.GIF):由Compu Serve創(chuàng)建,它能以任意大小支持圖畫,通過壓縮可節(jié)省存儲空間,還能將多幅圖畫存在一個文件中。支持256色,最大圖像像素是64000×64000。 Kodak Photo CD(.PCD):Eastman Kodak所開發(fā)的位圖文件格式,被所有的平臺所支持,PCD支持24位顏色,最大的圖像像素是2048×3072,用于在CD-ROM上保存照片。 Adobe Photoshop(.PSD):Adobe Photoshop的位圖文件格式,被Macintosh和MS Windows平臺所支持,最大的圖像像素是30000×30000,支持壓縮,廣泛用于商業(yè)藝術。 Macintosh繪畫(.MAC):Apple公司所開發(fā)的位圖文件格式。被Macintosh平臺所支持,僅支持單色原圖,最大圖像像素是576×720。支持壓縮,主要用于在Macintosh圖形應用程序中保存黑白圖形和剪貼畫片。 ★動畫文件的后綴名 動畫文件格式用于保存包含動畫框架中的圖形信息。主要有:Autodesk FLIC(.FLC):即.FLI,Autodesk Animator和AnimatorPro的動畫文件格式。支持256色,最大的圖像像素是64000×64000,支持壓縮。廣泛用于動畫圖形中的動畫序列、計算機輔助設計和計算機游戲應用程序。不大適合制作真實世界圖像動畫。 MacPICTS(.PCS,.PIC):Macromedia開發(fā)的動畫文件格式,為Macintosh應用程序使用。支持256色,支持壓縮,用于保存動畫數(shù)據(jù),是Quick Time的前身。 Microsoft資源互換文件格式,TIFF(.AVD):Microsoft公司開發(fā)的動畫文件格式,被Windows、Windows NT平臺和OS/2多媒體應用程序所支持,支持256色和壓縮,用于在多媒體應用程序中保存音頻、視頻和圖形信息。 MPEG(.MPEG):國際標準化組織的運動圖像專家小組開發(fā)的動畫文件格式。被所有平臺和Xing Technologies MPEG播放器及其它應用程序所支持,支持壓縮,最大圖像像素是4095×4094×30幀/每秒。用于編碼音頻、視頻、文本和圖形數(shù)據(jù)。 Quick Time(.QTM):Apple計算機公司開發(fā)的動畫文件格式。被Apple Macintosh和Microsoft Windows平臺所支持,支持25位顏色,最大圖像像素是64000×64000,支持壓縮,用于保存音頻和運動視頻信息。 ★聲音文件的后綴名 聲音文件格式是用于保存數(shù)字音頻信息的。它們主要有: AIFF(.AIF):這是Apple計算機公司開發(fā)的聲音文件格式,被Macintosh平臺和應用程序所支持。支持壓縮。 Amiga聲音(.SVX):Commodore所開發(fā)的聲音文件格式,被Amiga平臺和應用程序所支持,不支持壓縮。 MAC聲音(.SND):Apple計算機公司開發(fā)的聲音文件格式,被Macintosh平臺和多種Macintosh應用程序所支持,支持某些壓縮。 MIDI(.MID):國際MIDI協(xié)會開發(fā)的聲音文件格式,被Windows平臺和許多應用程序所支持,用于為樂器創(chuàng)建數(shù)字聲音。 聲霸(.VOC):Creative Labs公司開發(fā)的聲音文件格式,被Windows和DOS平臺所支持,支持壓縮。 WAVE(.WAV):微軟公司用作Windows平臺上保存音頻信息的資源格式。 ★壓縮文件的后綴名 為了提高存儲效率,許多公司都推出了壓縮數(shù)據(jù)的方法和相應的軟件,這類文件的使用主要通過壓包和解包軟件來進行,主要的后綴有:*.zip、*.arj、*.rar、*.lzh、*.jar。還有一些專用的壓縮文件,如:*.ex_、*.dl_、*.d3_、*.cab等。 ★數(shù)據(jù)庫類文件的后綴名 在Dbase、FoxBase、Foxpro系列軟件的環(huán)境下有以下幾類后綴: .ap 生成應用 .app 應用文件 .cbx和.pjt 標簽文件 .cdx和.idx 索引文件 .dbf 數(shù)據(jù)庫文件(databasefile) .err 編譯錯誤文件 .fky 鍵宏文件 .fp 配置文件 .fpt 備注字段文件 .frx和.frt 報表文件 .fxp 編譯后的程序 .mnx 和.mnt 菜單文件 .men 內(nèi)存應用 .pcb 庫文件 .pjx和.pjt 工程文件 .prg 命令文件(即程序Program) .qpr和.qpx SQL查詢文件 .scx和.sct 屏幕文件 .tbk 臨時數(shù)據(jù)庫文件 .tmp 臨時文件 .win 窗口文件 ★可安全刪除的文件類型 臨時文件:*.tmp,*.syd,*.$$$,*.@@@,*._mp,*.gid,*.~*,*.gts 備份文件:*.bak,*.old,*.wbk,*.xlk,*.ckr_ 幫助文件:*.hlp、*.chm、* t ★后記 用戶要注意在不同的操作系統(tǒng)下,后綴名的約定會有所不同,如在Unix下,*.p代表Pascal語言程序,*.z代表壓縮文件,*.tar代表歸檔文件。另外,針對極特殊的設備,其驅(qū)動程序也會有特殊的后綴,如3DS顯示卡的驅(qū)動程序是*.exp。還有某些公司針對自己的產(chǎn)品也規(guī)定了文件名后綴,如方正公司的圖像排版文件規(guī)定用*.grh(即Graph)。 文件名的后綴代表著某一種類型的文件,一般會由某一種特定的軟件產(chǎn)生和處理。只有對這些后綴名的知識有一定的了解,才能在上機的過程中知道其所以然。這兒帶著大家看到了常見的一些后綴類型,實際上還有很多類型,不可能全部講完。常言說,師傅領進門,修行在個人,以后大家在計算機世界中自己轉(zhuǎn)著看吧。 ★常見的文件后綴名 .ACA:Microsoft的**使用的角色文檔 .acf:系統(tǒng)管理配置 .acm:音頻壓縮管理驅(qū)動程序,為Windows系統(tǒng)提供各種聲音格式的編碼和解碼功能 .aif:聲音文件,支持壓縮,可以使用Windows Media Player和QuickTime Player播放 .AIF:音頻文件,使用Windows Media Player播放 .AIFC:音頻文件,使用Windows Media Player播放 .AIFF:音頻文件,使用Windows Media Player播放 .ani:動畫光標文件擴展名,例如動畫沙漏。 .ans:ASCII字符圖形動畫文件 .arc:一種較早的壓縮文件,可以使用WinZip,WinRAR,PKARC等軟件打開 .arj:壓縮文件??梢允褂肳inZip,WinRAR,PKARC等軟件打開 .asf:微軟的媒體播放器支持的視頻流,可以使用Windows Media Player播放 .asp:微軟的視頻流文件,可以使用Windows Media Player打開 .asp:微軟提出的Active Server Page,是服務器端腳本,常用于大型網(wǎng)站開發(fā),支持數(shù)據(jù)庫連接,類似PHP??梢允褂肰isual InterDev編寫,是目前的大熱門 .asx:Windows Media 媒體文件的快捷方式 .au:是Internet中常用的聲音文件格式,多由Sun工作站創(chuàng)建,可使用軟件Waveform Hold and Modify 播放。Netscape Navigator中的LiveAudio也可以播放.au文件 .avi:一種使用Microsoft RIFF規(guī)范的Windows多媒體文件格式,用于存儲聲音和移動的圖片 .bak:備份文件,一般是被自動或是通過命令創(chuàng)建的輔助文件,它包含某個文件的最近一個版本,并且具有于該文件相同的文件名 .bas Basic:語言源程序文件,可編譯成可執(zhí)行文件,目前使用Basic開發(fā)系統(tǒng)的是Visual Basic .bat:批處理文件,在MS-DOS中,.bat文件是可執(zhí)行文件,有一系列命令構成,其中可以包含對其他程序的調(diào)用 .bbs:電子告示板系統(tǒng)文章信息文件 .bfc:Windows的公文包文件 .bin:二進制文件,其用途依系統(tǒng)或應用而定 .bmp:Bitmap位圖文件,這是微軟公司開發(fā)Paint的自身格式,可以被多種Windows和Windows NT平臺及許多應用程序支持,支持32位顏色,用于為Windows界面創(chuàng)建圖標的資源文件格式。 .c:C語言源程序文件,在C語言編譯程序下編譯使用 .cab:Microsoft制訂的壓縮包格式,常用于軟件的安裝程序,使用Windows自帶的實用程序,Extract.exe可以對其解壓縮,WinZip,WinRAR等都支持這種格式 .cal:Windows 中的日歷文件 .cdf:Internet Explorer的頻道文件 .cdr:CorelDraw中的一種圖形文件格式,它是所有CorelDraw應用程序中均能夠使用的一種圖形圖像文件格式 .cdx:索引文件,存在于Dbase,Foxbase,Foxpro系統(tǒng)軟件環(huán)境下 .cfg:配置文件,系統(tǒng)或應用軟件用于進行配置自己功能,特性的文件 .chm:編譯過后的HTML文件,常用于制作幫助文件和電子文檔 .clp:在Windows下剪貼板中的文件格式 .cmd:用于Windows NT/2000的批處理文件,其實與BAT文件功能相同,只是為了與DOS/Windows 9x下的BAT有所區(qū)別 .cmf:聲卡標準的音樂文件,F(xiàn)M合成器等可以回放 f:NetMeetting會議連接文件 t:聯(lián)機幫助文件目錄索引文件,通常和同名的.hlp文件一起保存 .col:由Autodesk Animator,Autodesk Animator Por等程序創(chuàng)建的一種調(diào)色板文件格式,其中存儲的是調(diào)色板中各種項目的RGB值 :DOS可執(zhí)行命令文件,一般小于64KB .cpl:控制面板擴展文件,Windows操作系統(tǒng)使用 .cpp:C++語言源程序,非常強大的語言,在各種平臺中都有相應的開發(fā)系統(tǒng) .crd:Windows中的卡片文件 .crt:用于安全方面的證書認證文件 .cur:Windows下的光標資源文件格式,可用光標編輯軟件編輯 .css:Text/css文件 .dat:數(shù)據(jù)文件,在應用程序中使用 .dat:VCD中的圖象聲音文件,VCD播放軟件可調(diào)用,或是通過VCD機播放 .dbf:數(shù)據(jù)庫文件,F(xiàn)oxbase,Dbase,Visual FoxPro,等數(shù)據(jù)庫處理系統(tǒng)所產(chǎn)生的數(shù)據(jù)庫文件 .dcx:傳真瀏覽文檔文件 .ddi:映象文件,DUP,HD,IMG等工具可展開 .dev:設備驅(qū)動程序 .dib:設備無關位圖文件,這是一種文件格式,其目的是為了保證用某個應用程序創(chuàng)建的位圖圖形可以被其它應用程序裝載或顯示一樣 .dir:目錄文件 .dll:Windows動態(tài)連接庫,幾乎無處不在,但有時由于不同版本DLL沖突會造成敗各種各樣的問踢 .doc:是目前市場占有率最高的辦公室軟件Microsoft Office中的字處理軟件Word創(chuàng)建的文檔 .dos:Windows保留的MS-DOS的某些系統(tǒng)文件 .dot:Microsoft Word的文檔模板文件,通過模板可以簡化一些常用格式文檔的創(chuàng)建工作,而且可以內(nèi)嵌VBA程序來實現(xiàn)某些自動化功能 .drv:設備驅(qū)動程序文件,用在各種系統(tǒng)中 .dwg:AutoCAD的圖紙文件,也是許多繪圖軟件都支持的格式,常用于共享數(shù)據(jù) .dxb:AutoCAD創(chuàng)建的一中圖形文件格式 .dxf:圖形交換格式,一種計算機輔助設計的文件格式,最初開發(fā)用來與AutoCAD一起使用,以便于圖形文件在應用程序之間的傳遞,它以ASCII方式儲存圖形,在表現(xiàn)圖形的大小方面十分精確 .der:Certiticate文件 .dic:Txt文件 .emf:由Microsoft公司開發(fā)的Windows 32位擴展圖元文件格式,其總體設計目標是要彌補在Microsoft Windows 3.1(Win16)中用的*.wmf文件格式的不足,使得圖元文件更加易于使用 .eps:用PostScript語言描述的一種圖形文件格式,以文本文件保存,在PostScript圖形打印機上能打印出高品質(zhì)的圖形圖象,最高能表示32位圖形圖象 .err:編譯錯誤文件,存在于Dbase,Foxbase,Foxpro系列軟件環(huán)境下 .exe:可執(zhí)行文件,雖然后綴名相同,但具有不同的格式和版本 .exp:3DS使用的顯示卡驅(qū)動程序 .exc:Txt文件 .flc:Autodesk Animator和Animatorpro的動畫文件,支持256色,最大的圖象象索是64000*64000,支持壓縮,廣泛用于動畫圖形中的動畫序列,計算機輔助設計和計算機游戲應用程序 .fnd:保存的搜索結果 .fon:點陣字庫文件 .for:Fortran語言程序 .fot:指向字體的快捷鍵 .fp: 配置文件,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .fpt:備注字段文件,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .frt:報表文件,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .frx:報表文件,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .fxp:編譯后的程序,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .gif:在各種平臺的各種圖形處理軟件上均能夠處理的,經(jīng)過壓縮的一種圖形文件格式 .grh:方正公司的圖象排版文件 .grp:Windows下的程序管理器產(chǎn)生的組窗口文件 .goc:Gocserve .gra:MSGraph.Chart.5 .h:C語言源程序頭文件 .hlp:Windows應用程序幫助文件 .hqx:Macintosh中使用BinHex將二進制文件編碼為7位的文本文件,大多數(shù)Macintosh文件皆以.hqx出現(xiàn)(.bin極少使用),在Macintosh中,可使用StuffIt Expander對.hqx解碼,在Windows中可使用BinHex 13解碼 .ht: 超級終端 .htm:保存超文本描述語言的文本文件,用于描述各種各樣的網(wǎng)頁,使用各種瀏覽器打開 .html:同.htm文件 .icm:圖象配色描述文件 .ico:Windows中的圖標文件,可以包含同一個圖標的多種格式,使用圖標編輯軟件創(chuàng)建 .idf:MIDI樂器定義 .idx:索引文件,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .iff:文件交換格式文件,這種文件格式多用于Amiga平臺,在這種平臺上它幾乎可以存儲各種類型的數(shù)據(jù),在其它平臺上,IFF文件格式多用于存儲圖象和聲音文件 .image:MAcintosh磁盤映象文件,常見于萍果機的FTP網(wǎng)點,在Macintosh中由Shrink Wrap處理 .ime:Windows下的輸入法文件 .img:磁盤映象文件,用HD-COPY,WinImage等工具打開后可以恢復到一張磁盤上 .inc:匯編語言包含文件,類似C/C++中的.H文件 .inf:Windows下的軟件安裝信息,Windows的標準安裝程序根據(jù)此文件內(nèi)的安裝信息對軟件,驅(qū)動程序等進行安裝 .ini:Windows中的初始化信息文件,已經(jīng)用的不多了,新的應用程序?qū)⒃O置保存在系統(tǒng)的注冊表中 .jar:一種壓縮文件,ARJ的新版本,不過不太流行,可以使用WinJar,Winrar等打開 .jpeg:一種圖片壓縮文件,同.jpg .jpg:靜態(tài)圖象專家組制訂的靜態(tài)圖象壓縮標準,具有很高的壓縮比,使用非常廣泛,可使用PhotoShop等圖象處理軟件創(chuàng)建 .lnk:快捷方式,這個文件指向另一個文件,開始菜單的程序文件夾下每條項目都是一個LNK文件 .log:日志文件,通常用來記錄一些事件之類 .lzh:一種古老的壓縮文件,可以使用WinRAR打開 .mac:Macintosh中使用的一中灰度圖形文件格式,在Macintosh Paintbrush中使用,其分辨率只能是720*567 .mag :圖形文件格式 .mdb :Microsoft Access使用的數(shù)據(jù)庫格式,是非常流行的桌面數(shù)據(jù)庫 .men :內(nèi)存應用文件,存在于Dbase,Foxbase,Foxpro系列軟件的環(huán)境下 .mid :音頻壓縮文件,曾經(jīng)非常流行,不過在現(xiàn)在的軟件中用的很少了 .mif :MIDI樂器 .mov :使用Apple's QuickTime格式的電影文件,在Macintosh中由Sparkle,F(xiàn)astPlayer,MoviePlayer等軟件播放,在Windows中可由Quicktime播放 .movie :QuickTime或蘋果機的影視格式,在Macintosh中由Sparkle,F(xiàn)astPlayer,MoviePlayer等軟件播放,在Windows中可由QuickTime播放 .mp3 :采用MPEG-1 Layout 3標準壓縮的音頻文件,是網(wǎng)上主要的壓縮音頻文件,這種文件由于具有極高的壓縮率和失真低的特點,是目前音樂盜版的主要文件格式,但目前受到VQF,WMA等新標準的挑戰(zhàn) .mpg :采用MPEG-1標準壓縮的視頻文件,與VCD使用的格式非常相近,提供CD質(zhì)量的音頻信號和320*240的視頻分辯率,目前的媒體播放軟件大都能放,Microsoft的WMV8和MPEG-4壓縮的AVI文件是其強大的競爭對手 .mpt :Macintosh中使用的一種圖形文件格式 .msg :Microsoft郵件文檔 .obj :對象代碼 .ovl :由于軟件功能多,內(nèi)存偏小,不能一次性全部調(diào)入內(nèi)存的可執(zhí)行文件可能有同文件名的ovl文件 .pcd :位圖文件,由Eastman Kodak開發(fā),被所有的平臺所支持,PCD支持24位顏色,最大的圖象像索是2048*3072,用于在CD-ROM上保存圖片 .pcs :動畫文件,是Macromedia開發(fā)的動畫文件格式,為Macintosh應用程序使用,支持壓縮,支持256色,用于保存動畫數(shù)據(jù),是Quick Time的前身 .pcx :圖像文件,PCX格式是ZSOFT公司在開發(fā)圖像處理軟件Paintbrush是開發(fā)的一種格式,這是一種經(jīng)過壓縮的格式,占用磁盤空間較少 .pdf :圖文多媒體文件,Adobe公司定義的電子印刷品文件格式,它是一種事實上的標準,在Internet網(wǎng)上的很多電子印刷品,都是.pdf格式的 .psd :是PhotoShop中使用的一種標準圖形文件格式,能夠保存圖像數(shù)據(jù)的每一個細小部分,包括層,附加的蒙版通道以及其他內(nèi)容 .pwl :Windows下的口令文件 .qt :Machintosh 的QuickTime影視格式,在Macintosh中由Sparkle,F(xiàn)astPlayer,MoviePlayer等軟件播放,在Windows中可由Quicktime播放 .qtm :動畫文件,這種文件格式是由Apple計算機公司開發(fā),被Apple Macintosh和Microsoft Windows平臺所支持,支持25位顏色,最大圖像分辯率是64000*64000,支持壓縮,用于保存音頻和運動視頻信息 .rec :Windows下的記錄器宏文件 .reg :Windows 95/98的系統(tǒng)及應用程序注冊文件,這種文件雖然以純文本文件保存,但一樣存在版本問題,不同的操作系統(tǒng)使用的REG文件版本是不同的 .rle :一種壓縮過的位圖文件格式,RLE壓縮方案是一種極其成熟的壓縮方案,特點是無損失壓縮,既節(jié)省了磁盤空間又不損失任何圖像數(shù)據(jù),但在打開這種壓縮文件時,要花費更多時間,此外,一些兼容性不太好的應用程序可能會搭不開 .rm :Windows下的RealPlayer所支持的視頻壓縮文件,網(wǎng)上非常流行的流式視頻文件,很多實時視頻新聞等都是采用這種格式的,不過,最新的Windows Media Video V8已經(jīng)對其發(fā)起了強大的攻勢 .rmi :MIDI音序文件 .rtf :豐富文本格式文件,以純文本描述內(nèi)容,能夠保存各種格式信息,可以用寫字版,Word等創(chuàng)建 .sav :存檔文件 .scp :用于Windows系統(tǒng)中Internet撥號用戶,自動撥號登錄用的腳本文件,可避免手動登錄時繁瑣的鍵盤輸入 .scr :屏障保護文件 .sct :屏幕文件 .scx :屏幕文件 .set :Microsoft備份集文件,用于保存要備份的內(nèi)容,設置等信息 .shb :指向一個文檔的快捷方式 .snd :Mac聲音文件,Apple計算機公司開發(fā)的聲音文件格式,被Macintosh平臺和多種Macintosh應用程序所支持,支持某些壓縮 .sql:查詢文件,在Dbase,Foxbase,Foxpro系列軟件的環(huán)境下使用 .svg :SVG可以算是目前最火熱的圖像文件格式了,它是基于XML由WorldWideWebConsortium聯(lián)盟開發(fā)的,SVG是可縮放的矢量圖形 .svx :Amiga聲音文件,Commodore所開發(fā)的聲音文件格式,被Amiga平臺和應用程序所支持,不支持壓縮 .swf :flash是Micromedia公司的產(chǎn)品,嚴格說它是一種動畫編輯軟件,實際上它是制作出一種后綴名為.swf的動畫,這種格式的動畫能用比較小的體積來表現(xiàn)豐富的多媒體形式,并且還可以與HTML文件達到一種"水乳交融"的境界 .swg:虛擬內(nèi)存交換文件,由操作系統(tǒng)使用 .sys:系統(tǒng)文件,驅(qū)動程序等,在不同的操作系統(tǒng)中有不同的定義 .tbk:臨時數(shù)據(jù)庫文件,在Dbase,Foxbase,Foxpro系列軟件的環(huán)境下使用 .tga:圖像文件,此文件格式的結構比較簡單,屬于一種圖形,圖像數(shù)據(jù)的通用格式,在多媒體領域有著很大影響,是計算機生成圖像向電視轉(zhuǎn)換的一種首選格式 .tiff:圖像文件,此圖像格式復雜,存儲內(nèi)容多,占用存儲空間大,其大小是GIF圖像的3倍,是相應的JPEG圖像的10倍,最早流行于Macintosh,現(xiàn)在Windows主流的圖像應用程序都支持此格式 .tmp:臨時文件,一般是系統(tǒng)和應用程序產(chǎn)生的臨時使用的文件,當系統(tǒng)和應用程序退出時,會自動地刪除其建立的臨時文件,如果是非正常退出,臨時文件可能保留在磁盤上,在單任務系統(tǒng)下,可立即刪除它們,在多任務系統(tǒng)下,應刪除那些不是正在使用的臨時文件 .txt:文本文件 .url :InternetShortcut(internet 上URL地址的快捷方式) .vcd:虛擬光驅(qū)工具制作的光盤鏡像文件 .ver:版本描述,用于描述某個軟件的版本信息的文件,內(nèi)容因軟件而異 .voc:聲音文件,此文件格式由Creative Labs公司開發(fā),被Windows和DOS平臺所支持,支持壓縮 .vxd:虛擬設備驅(qū)動程序,在Windows操作系統(tǒng)中非常常見,是重要的系統(tǒng)文件 .wab:通信簿文件,由系統(tǒng)中的通信簿程序使用 .wav:音頻文件,此文件格式是在Windows上用于保存音頻信息的資源格式,Windows中由Waveform Hold and Modify或Navigator,或"媒體播放機"播放,存在許多編碼方式,需要相應的解碼程序才能播放 .win :窗口文件,在Dbase,Foxbase,Foxpro系列軟件的環(huán)境下使用 .wmf :Microsoft Windows中常見的一種圖元文件格式,它具有文件短小,圖案造型化的特點,整個圖形常由各個獨立的組成部分拼接而成,但其圖形往往較粗糙,并且只能在Microsoft Office中調(diào)用編輯 .wpc:寫字板文檔轉(zhuǎn)換 .wps:Wps文本文件,有多種版本,可以使用Wps Office,Wps 2000等打開 .wri :Windows寫字板文檔 .xab :Microsoft郵件地址簿 .xbm :Animator Pro創(chuàng)建的一種圖形文件格式,其中包含用來描述多邊形的一系列點的信息 .zip:是DOS/Windows中最常見文件壓縮格式,也是互聯(lián)網(wǎng)上的標準壓縮格式,可以包含路徑和多個文件
比較大的應用程序都由很多模塊組成,這些模塊分別完成相對獨立的功能,它們彼此協(xié)作來完成整個軟件系統(tǒng)的工作??赡艽嬖谝恍┠K的功能較為通用,在構造其它軟件系統(tǒng)時仍會被使用。在構造軟件系統(tǒng)時,如果將所有模塊的源代碼都靜態(tài)編譯到整個應用程序 EXE 文件中,會產(chǎn)生一些問題:一個缺點是增加了應用程序的大小,它會占用更多的磁盤空間,程序運行時也會消耗較大的內(nèi)存空間,造成系統(tǒng)資源的浪費;另一個缺點是,在編寫大的 EXE 程序時,在每次修改重建時都必須調(diào)整編譯所有源代碼,增加了編譯過程的復雜性,也不利于階段性的單元測試。 Windows 系統(tǒng)平臺上提供了一種完全不同的較有效的編程和運行環(huán)境,你可以將獨立的程序模塊創(chuàng)建為較小的 DLL (Dynamic Linkable Library) 文件,并可對它們單獨編譯和測試。在運行時,只有當 EXE 程序確實要調(diào)用這些 DLL 模塊的情況下,系統(tǒng)才會將它們裝載到內(nèi)存空間中。這種方式不僅減少了 EXE 文件的大小和對內(nèi)存空間的需求,而且使這些 DLL 模塊可以同時被多個應用程序使用。Windows 自己就將一些主要的系統(tǒng)功能以 DLL 模塊的形式實現(xiàn)。 一般來說,DLL 是一種磁盤文件,以.dll、.DRV、.FON、.SYS 和許多以 .EXE 為擴展名的系統(tǒng)文件都可以是 DLL。它由全局數(shù)據(jù)、服務函數(shù)和資源組成,在運行時被系統(tǒng)加載到調(diào)用進程的虛擬空間中,成為調(diào)用進程的一部分。如果與其它 DLL 之間沒有沖突,該文件通常映射到進程虛擬空間的同一地址上。DLL 模塊中包含各種導出函數(shù),用于向外界提供服務。DLL 可以有自己的數(shù)據(jù)段,但沒有自己的堆棧,使用與調(diào)用它的應用程序相同的堆棧模式;一個 DLL 在內(nèi)存中只有一個實例;DLL 實現(xiàn)了代碼封裝性;DLL 的編制與具體的編程語言及編譯器無關。 在 Win32 環(huán)境中,每個進程都復制了自己的讀/寫全局變量。如果想要與其它進程共享內(nèi)存,必須使用內(nèi)存映射文件或者聲明一個共享數(shù)據(jù)段。DLL 模塊需要的堆棧內(nèi)存都是從運行進程的堆棧中分配出來的。Windows 在加載 DLL 模塊時將進程函數(shù)調(diào)用與 DLL 文件的導出函數(shù)相匹配。Windows 操作系統(tǒng)對 DLL 的操作僅僅是把 DLL 映射到需要它的進程的虛擬地址空間里去。DLL 函數(shù)中的代碼所創(chuàng)建的任何對象(包括變量)都歸調(diào)用它的線程或進程所有。 調(diào)用方式 1、靜態(tài)調(diào)用方式:由編譯系統(tǒng)完成對 DLL 的加載和應用程序結束時 DLL 卸載的編碼(如還有其它程序使用該 DLL,則 Windows 對 DLL 的應用記錄減1,直到所有相關程序都結束對該 DLL 的使用時才釋放它,簡單實用,但不夠靈活,只能滿足一般要求。 隱式的調(diào)用:需要把產(chǎn)生動態(tài)連接庫時產(chǎn)生的 .LIB 文件加入到應用程序的工程中,想使用 DLL 中的函數(shù)時,只須說明一下。隱式調(diào)用不需要調(diào)用 LoadLibrary() 和 FreeLibrary()。程序員在建立一個 DLL 文件時,鏈接程序會自動生成一個與之對應的 LIB 導入文件。該文件包含了每一個 DLL 導出函數(shù)的符號名和可選的標識號,但是并不含有實際的代碼。LIB 文件作為 DLL 的替代文件被編譯到應用程序項目中。 當程序員通過靜態(tài)鏈接方式編譯生成應用程序時,應用程序中的調(diào)用函數(shù)與 LIB 文件中導出符號相匹配,這些符號或標識號進入到生成的 EXE 文件中。LIB 文件中也包含了對應的 DL L文件名(但不是完全的路徑名),鏈接程序?qū)⑵浯鎯υ?EXE 文件內(nèi)部。 當應用程序運行過程中需要加載 DLL 文件時,Windows 根據(jù)這些信息發(fā)現(xiàn)并加載 DLL,然后通過符號名或標識號實現(xiàn)對 DLL 函數(shù)的動態(tài)鏈接。所有被應用程序調(diào)用的 DLL 文件都會在應用程序 EXE 文件加載時被加載在到內(nèi)存中。可執(zhí)行程序鏈接到一個包含 DLL 輸出函數(shù)信息的輸入庫文件(.LIB文件)。操作系統(tǒng)在加載使用可執(zhí)行程序時加載 DLL??蓤?zhí)行程序直接通過函數(shù)名調(diào)用 DLL 的輸出函數(shù),調(diào)用方法和程序內(nèi)部其 它的函數(shù)是一樣的。 2、動態(tài)調(diào)用方式:是由編程者用 API 函數(shù)加載和卸載 DLL 來達到調(diào)用 DLL 的目的,使用上較復雜,但能更加有效地使用內(nèi)存,是編制大型應用程序時的重要方式。 顯式的調(diào)用:是指在應用程序中用 LoadLibrary 或 MFC 提供的 AfxLoadLibrary 顯式的將自己所做的動態(tài)連接庫調(diào)進來,動態(tài)連接庫的文件名即是上面兩個函數(shù)的參數(shù),再用 GetProcAddress() 獲取想要引入的函數(shù)。自此,你就可以象使用如同本應用程序自定義的函數(shù)一樣來調(diào)用此引入函數(shù)了。在應用程序退出之前,應該用 FreeLibrary 或 MFC 提供的 AfxFreeLibrary 釋放動態(tài)連接庫。直接調(diào)用 Win32 的 LoadLibary 函數(shù),并指定 DLL 的路徑作為參數(shù)。LoadLibary 返回 HINSTANCE 參數(shù),應用程序在調(diào)用 GetProcAddress 函數(shù)時使用這一參數(shù)。GetProcAddress 函數(shù)將符號名或標識號轉(zhuǎn)換為 DLL 內(nèi)部的地址。程序員可以決定 DLL 文件何時加載或不加載,顯式鏈接在運行時決定加載哪個 DLL 文件。使用 DLL 的程序在使用之前必須加載(LoadLibrary)加載DLL從而得到一個DLL模塊的句柄,然后調(diào)用 GetProcAddress 函數(shù)得到輸出函數(shù)的指針,在退出之前必須卸載DLL(FreeLibrary)。 Windows將遵循下面的搜索順序來定位 DLL: 包含EXE文件的目錄 進程的當前工作目錄 Windows系統(tǒng)目錄 Windows目錄 列在 Path 環(huán)境變量中的一系列目錄 MFC中的DLL Non-MFC DLL:指的是不用 MFC 的類庫結構,直接用 C 語言寫的 DLL,其輸出的函數(shù)一般用的是標準 C 接口,并能被 非 MFC 或 MFC 編寫的應用程序所調(diào)用。 Regular DLL:和下述的 Extension DLLs 一樣,是用 MFC 類庫編寫的。明顯的特點是在源文件里有一個繼承 CWinApp 的類。其又可細分成靜態(tài)連接到 MFC 和動態(tài)連接到 MFC 上的。 靜態(tài)連接到 MFC 的動態(tài)連接庫只被 VC 的專業(yè) 版和企業(yè)版所支持。該類 DLL 應用程序里頭的輸出函數(shù)可以被任意 Win32 程序使用,包括使用 MFC 的應用程序。輸入函數(shù)有如下形式: extern "C" EXPORT YourExportedFunction(); 如果沒有 extern "C" 修飾,輸出函數(shù)僅僅能從 C++ 代碼中調(diào)用。 DLL 應用程序從 CWinApp 派生,但沒有消息循環(huán)。 動態(tài)鏈接到 MFC 的 規(guī)則 DLL 應用程序里頭的輸出函數(shù)可以被任意 Win32 程序使用,包括使用 MFC 的應用程序。但是,所有從 DLL 輸出的函數(shù)應該以如下語句開始: AFX_MANAGE_STATE(AfxGetStaticModuleState( )) 此語句用來正確地切換 MFC 模塊狀態(tài)。 Regular DLL能夠被所有支持 DLL 技術的語言所編寫的應用程序所調(diào)用。在這種動態(tài)連接庫中,它必須有一個從 CWinApp 繼承下來的類,DLLMain 函數(shù)被 MFC 所提供,不用自己顯式的寫出來。 Extension DLL:用來實現(xiàn)從 MFC 所繼承下來的類的重新利用,也就是說,用這種類型的動態(tài)連接庫,可以用來輸出一個從 MFC 所繼承下來的類。它輸出的函數(shù)僅可以被使用 MFC 且動態(tài)鏈接到 MFC 的應用程序使用。可以從 MFC 繼承你所想要的、更適于你自己用的類,并把它提供給你的應用程序。你也可隨意的給你的應用程序提供 MFC 或 MFC 繼承類的對象指針。Extension DLL使用 MFC 的動態(tài)連接版本所創(chuàng)建的,并且它只被用 MFC 類庫所編寫的應用程序所調(diào)用。Extension DLLs 和 Regular DLLs 不一樣,它沒有從 CWinApp 繼承而來的類的對象,所以,你必須為自己 DLLMain 函數(shù)添加初始化代碼和結束代碼。 和規(guī)則 DLL 相比,有以下不同: 1、它沒有從 CWinApp 派生的對象; 2、它必須有一個 DLLMain 函數(shù); 3、DLLMain 調(diào)用 AfxInitExtensionModule 函數(shù),必須檢查該函數(shù)的返回值,如果返回0,DLLMmain 也返回 0; 4、如果它希望輸出 CRuntimeClass 類型的對象或者資源,則需要提供一個初始化函數(shù)來創(chuàng)建一個 CDynLinkLibrary 對象。并且,有必要把初始化函數(shù)輸出; 5、使用擴展 DLL 的 MFC 應用程序必須有一個從 CWinApp 派生的類,而且,一般在InitInstance 里調(diào)用擴展 DLL 的初始化函數(shù)。 DLL入口函數(shù) 1、每一個 DLL 必須有一個入口點,DLLMain 是一個缺省的入口函數(shù)。DLLMain 負責初始化和結束工作,每當一個新的進程或者該進程的新的線程訪問 DLL 時,或者訪問 DLL 的每一個進程或者線程不再使用DLL或者結束時,都會調(diào)用 DLLMain。但是,使用 TerminateProcess 或 TerminateThread 結束進程或者線程,不會調(diào)用 DLLMain。 DLLMain的函數(shù)原型: BOOL APIENTRY DLLMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: ....... case DLL_THREAD_ATTACH: ....... case DLL_THREAD_DETACH: ....... case DLL_PROCESS_DETACH: ....... return TRUE; } } 參數(shù): hMoudle:是動態(tài)庫被調(diào)用時所傳遞來的一個指向自己的句柄(實際上,它是指向_DGROUP段的一個選擇符); ul_reason_for_call:是一個說明動態(tài)庫被調(diào)原因的標志。當進程或線程裝入或卸載動態(tài)連接庫的時候,操作系統(tǒng)調(diào)用入口函數(shù),并說明動態(tài)連接庫被調(diào)用的原因。它所有的可能值為: DLL_PROCESS_ATTACH: 進程被調(diào)用; DLL_THREAD_ATTACH: 線程被調(diào)用; DLL_PROCESS_DETACH: 進程被停止; DLL_THREAD_DETACH: 線程被停止; lpReserved:是一個被系統(tǒng)所保留的參數(shù); 2、_DLLMainCRTStartup 為了使用 "C" 運行庫 (CRT,C Run time Library) 的 DLL 版本(多線程),一個 DLL 應用程序必須指定 _DLLMainCRTStartup 為入口函數(shù),DLL 的初始化函數(shù)必須是 DLLMain。 _DLLMainCRTStartup 完成以下任務:當進程或線程捆綁(Attach) 到 DLL 時為 "C" 運行時的數(shù)據(jù) (C Runtime Data) 分配空間和初始化并且構造全局 "C++"對象,當進程或者線程終止使用DLL(Detach) 時,清理 C Runtime Data 并且銷毀全局 "C++" 對象。它還調(diào)用 DLLMain 和 RawDLLMain 函數(shù)。 RawDLLMain 在 DLL 應用程序動態(tài)鏈接到 MFC DLL 時被需要,但它是靜態(tài)鏈接到 DLL 應用程序的。在講述狀態(tài)管理時解釋其原因。 關于調(diào)用約定 動態(tài)庫輸出函數(shù)的約定有兩種:調(diào)用約定和名字修飾約定。 1)調(diào)用約定(Calling convention):決定函數(shù)參數(shù)傳送時入棧和出棧的順序,由調(diào)用者還是被調(diào)用者把參數(shù)彈出棧,以及編譯器用來識別函數(shù)名字的修飾約定。 函數(shù)調(diào)用約定有多種,這里簡單說一下: 1、__stdcall 調(diào)用約定相當于16位動態(tài)庫中經(jīng)常使用的 PASCAL 調(diào)用約定。在32位的 VC++5.0 中PASCAL 調(diào)用約定不再被支持(實際上它已被定義為__stdcall。除了__pascal 外,__fortran 和__syscall也不被支持),取而代之的是 __stdcall 調(diào)用約定。兩者實質(zhì)上是一致的,即函數(shù)的參數(shù)自右向左通過棧傳遞,被調(diào)用的函數(shù)在返回前清理傳送參數(shù)的內(nèi)存棧,但不同的是函數(shù)名的修飾部分(關于函數(shù)名的修飾部分在后面將詳細說明)。 _stdcall 是 Pascal 程序的缺省調(diào)用方式,通常用于 Win32 API 中,函數(shù)采用從右到左的壓棧方式,自己在退出時清空堆棧。VC 將函數(shù)編譯后會在函數(shù)名前面加上下劃線前綴,在函數(shù)名后加上 "@" 和參數(shù)的字節(jié)數(shù)。 2、C 調(diào)用約定(即用__cdecl 關鍵字說明)按從右至左的順序壓參數(shù)入棧,由調(diào)用者把參數(shù)彈出棧。對于傳送參數(shù)的內(nèi)存棧是由調(diào)用者來維護的(正因為如此,實現(xiàn)可變參數(shù)的函數(shù)只能使用該調(diào)用約定)。另外,在函數(shù)名修飾約定方面也有所不同。 _cdecl 是 C 和 C++ 程序缺省的調(diào)用方式。每一個調(diào)用它的函數(shù)都包含清空堆棧的代碼,所以產(chǎn)生的可執(zhí)行文件大小會比調(diào)用 _stdcall 函數(shù)的大。函數(shù)采用從右到左的壓棧方式。VC 將函數(shù)編譯后會在函數(shù)名前面加上下劃線前綴。 它是 MFC 缺省調(diào)用約定。 3、__fastcall 調(diào)用約定是 "人" 如其名,它的主要特點就是快,因為它是通過寄存器來傳送參數(shù)的(實際上,它用 ECX 和 EDX 傳送前兩個雙字(DWORD)或更小的參數(shù),剩下的參數(shù)仍舊自右向左壓棧傳送,被調(diào)用的函數(shù)在返回前清理傳送參數(shù)的內(nèi)存棧),在函數(shù)名修飾約定方面,它和前兩者均不同。 _fastcall方式的函數(shù)采用寄存器傳遞參數(shù),VC 將函數(shù)編譯后會在函數(shù)名前面加上"@"前綴,在函數(shù)名后加上"@"和參數(shù)的字節(jié)數(shù)。 4、thiscall 僅僅應用于 "C++" 成員函數(shù)。this 指針存放于 CX 寄存器,參數(shù)從右到左壓。thiscall 不是關鍵詞,因此不能被程序員指定。 5、naked call采用 1-4 的調(diào)用約定時,如果必要的話,進入函數(shù)時編譯器會產(chǎn)生代碼來保存ESI,EDI,EBX,EBP寄存器,退出函數(shù)時則產(chǎn)生代碼恢復這些寄存器的內(nèi)容。 naked call不產(chǎn)生這樣的代碼。naked call不是類型修飾符,故必須和_declspec 共同使用。 關鍵字 __stdcall、__cdecl 和 __fastcall 可以直接加在要輸出的函數(shù)前,也可以在編譯環(huán)境的 Setting...\C/C++ \Code Generation 項選擇。當加在輸出函數(shù)前的關鍵字與編譯環(huán)境中的選擇不同時,直接加在輸出函數(shù)前的關鍵字有效。它們對應的命令行參數(shù)分別為/Gz、/Gd 和 /Gr。缺省狀態(tài)為/Gd,即__cdecl。 要完全模仿 PASCAL 調(diào)用約定首先必須使用 __stdcall 調(diào)用約定,至于函數(shù)名修飾約定,可以通過其它方法模仿。還有一個值得一提的是 WINAPI 宏,Windows.h 支持該宏,它可以將出函數(shù)翻譯成適當?shù)恼{(diào)用約定,在 WIN32 中,它被定義為 __stdcall。使用 WINAPI 宏可以創(chuàng)建自己的 APIs。 2)名字修飾約定 1、修飾名(Decoration name) "C" 或者 "C++" 函數(shù)在內(nèi)部(編譯和鏈接)通過修飾名識別。修飾名是編譯器在編譯函數(shù)定義或者原型時生成的字符串。有些情況下使用函數(shù)的修飾名是必要的,如在模塊定義文件里頭指定輸出"C++"重載函數(shù)、構造函數(shù)、析構函數(shù),又如在匯編代碼里調(diào)用"C""或"C++"函數(shù)等。 修飾名由函數(shù)名、類名、調(diào)用約定、返回類型、參數(shù)等共同決定。 2、名字修飾約定隨調(diào)用約定和編譯種類(C或C++)的不同而變化。函數(shù)名修飾約定隨編譯種類和調(diào)用約定的不同而不同,下面分別說明。 a、C編譯時函數(shù)名修飾約定規(guī)則: __stdcall 調(diào)用約定在輸出函數(shù)名前加上一個下劃線前綴,后面加上一個"@"符號和其參數(shù)的字節(jié)數(shù),格式為 _functionname@number。 __cdecl調(diào)用約定僅在輸出函數(shù)名前加上一個下劃線前綴,格式為 _functionname。 __fastcall調(diào)用約定在輸出函數(shù)名前加上一個"@"符號,后面也是一個"@"符號和其參數(shù)的字節(jié)數(shù),格式為@functionname@number。 它們均不改變輸出函數(shù)名中的字符大小寫,這和PASCAL調(diào)用約定不同,PASCAL約定輸出的函數(shù)名無任何修飾且全部大寫。 b、C++編譯時函數(shù)名修飾約定規(guī)則: __stdcall調(diào)用約定: 1、以"?"標識函數(shù)名的開始,后跟函數(shù)名; 2、函數(shù)名后面以"@@YG"標識參數(shù)表的開始,后跟參數(shù)表; 3、參數(shù)表以代號表示: X——void, D——char, E——unsigned char, F——short, H——int, I——unsigned int, J——long, K——unsigned long, M——float, N——double, _N——bool, .... PA——表示指針,后面的代號表明指針類型,如果相同類型的指針連續(xù)出現(xiàn),以"0"代替,一個"0"代表一次重復; 4、參數(shù)表的第一項為該函數(shù)的返回值類型,其后依次為參數(shù)的數(shù)據(jù)類型,指針標識在其所指數(shù)據(jù)類型前; 5、參數(shù)表后以"@Z"標識整個名字的結束,如果該函數(shù)無參數(shù),則以"Z"標識結束。 其格式為"?functionname@@YG*****@Z"或"?functionname@@YG*XZ", 例如 int Test1(char *var1,unsigned long)-----“?Test1@@YGHPADK@Z” void Test2() -----“?Test2@@YGXXZ” __cdecl調(diào)用約定: 規(guī)則同上面的_stdcall調(diào)用約定,只是參數(shù)表的開始標識由上面的"@@YG"變?yōu)?quot;@@YA"。 __fastcall調(diào)用約定: 規(guī)則同上面的_stdcall調(diào)用約定,只是參數(shù)表的開始標識由上面的"@@YG"變?yōu)?quot;@@YI"。 VC++對函數(shù)的省缺聲明是"__cedcl",將只能被C/C++調(diào)用。 關于DLL的函數(shù) 動態(tài)鏈接庫中定義有兩種函數(shù):導出函數(shù)(export function)和內(nèi)部函數(shù)(internal function)。導出函數(shù)可以被其它模塊調(diào)用,內(nèi)部函數(shù)在定義它們的DLL程序內(nèi)部使用。 輸出函數(shù)的方法有以下幾種: 1、傳統(tǒng)的方法 在模塊定義文件的 EXPORT 部分指定要輸入的函數(shù)或者變量。語法格式如下: entryname[=internalname] [@ordinal[NONAME]] [DATA] [PRIVATE] 其中: entryname 是輸出的函數(shù)或者數(shù)據(jù)被引用的名稱; internalname 同 entryname; @ordinal 表示在輸出表中的順序號(index); NONAME 僅僅在按順序號輸出時被使用(不使用 entryname ); DATA 表示輸出的是數(shù)據(jù)項,使用 DLL 輸出數(shù)據(jù)的程序必須聲明該數(shù)據(jù)項為 _declspec(DLLimport)。 上述各項中,只有 entryname 項是必須的,其他可以省略。 對于"C"函數(shù)來說,entryname 可以等同于函數(shù)名;但是對 "C++" 函數(shù)(成員函數(shù)、非成員函數(shù))來說,entryname 是修飾名??梢詮?.map 映像文件中得到要輸出函數(shù)的修飾名,或者使用DUMPBIN /SYMBOLS 得到,然后把它們寫在 .def 文件的輸出模塊。DUMPBIN 是VC提供的一個工具。 如果要輸出一個 "C++" 類,則把要輸出的數(shù)據(jù)和成員的修飾名都寫入 .def 模塊定義文件。 2、在命令行輸出 對鏈接程序 LINK 指定 /EXPORT 命令行參數(shù),輸出有關函數(shù)。 3、使用 MFC 提供的修飾符號 _declspec(DLLexport) 在要輸出的函數(shù)、類、數(shù)據(jù)的聲明前加上 _declspec(DLLexport) 修飾符表示輸出。__declspec(DLLexport) 在 C 調(diào)用約定、C 編譯情況下可以去掉輸出函數(shù)名的下劃線前綴。extern "C" 使得在 C++ 中使用 C 編譯方式成為可能。在"C++"下定義"C"函數(shù)需要加 extern "C" 關鍵詞。用 extern "C" 來指明該函數(shù)使用 C 編譯方式。輸出的 "C" 函數(shù)可以從 "C" 代碼里調(diào)用。 例如,在一個 C++ 文件中,有如下函數(shù): extern "C" 其輸出函數(shù)名為:Test MFC提供了一些宏,就有這樣的作用。 AFX_CLASS_IMPORT:__declspec(DLLexport) AFX_API_IMPORT:__declspec(DLLexport) AFX_DATA_IMPORT:__declspec(DLLexport) AFX_CLASS_EXPORT:__declspec(DLLexport) AFX_API_EXPORT:__declspec(DLLexport) AFX_DATA_EXPORT:__declspec(DLLexport) AFX_EXT_CLASS: #ifdef _AFXEXT AFX_CLASS_EXPORT #else AFX_CLASS_IMPORT AFX_EXT_API:#ifdef _AFXEXT AFX_API_EXPORT #else AFX_API_IMPORT AFX_EXT_DATA:#ifdef _AFXEXT AFX_DATA_EXPORT #else AFX_DATA_IMPORT 像 AFX_EXT_CLASS 這樣的宏,如果用于 DLL 應用程序的實現(xiàn)中,則表示輸出(因為_AFX_EXT被定義,通常是在編譯器的標識參數(shù)中指定該選項 /D_AFX_EXT);如果用于使用DLL的應用程序中,則表示輸入(_AFX_EXT沒有定義)。 要輸出整個的類,對類使用_declspec(_DLLexpot);要輸出類的成員函數(shù),則對該函數(shù)使用_declspec(_DLLexport)。如: class AFX_EXT_CLASS CTextDoc : public CDocument { … } extern "C" AFX_EXT_API void WINAPI InitMYDLL(); 這幾種方法中,最好采用第三種,方便好用;其次是第一種,如果按順序號輸出,調(diào)用效率會高些;最次是第二種。 模塊定義文件(.DEF) 模塊定義文件(.DEF)是一個或多個用于描述 DLL 屬性的模塊語句組成的文本文件,每個DEF文件至少必須包含以下模塊定義語句: 第一個語句必須是LIBRARY語句,指出DLL的名字; EXPORTS 語句列出被導出函數(shù)的名字;將要輸出的函數(shù)修飾名羅列在 EXPORTS 之下,這個名字必須與定義函數(shù)的名字完全一致,如此就得到一個沒有任何修飾的函數(shù)名了。 可以使用DESCRIPTION語句描述DLL的用途(此句可選); ";"對一行進行注釋(可選)。 DLL程序和調(diào)用其輸出函數(shù)的程序的關系 1、DLL與進程、線程之間的關系 DLL模塊被映射到調(diào)用它的進程的虛擬地址空間。 DLL使用的內(nèi)存從調(diào)用進程的虛擬地址空間分配,只能被該進程的線程所訪問。 DLL的句柄可以被調(diào)用進程使用;調(diào)用進程的句柄可以被DLL使用。 DLL使用調(diào)用進程的棧。 2、關于共享數(shù)據(jù)段 DLL定義的全局變量可以被調(diào)用進程訪問;DLL可以訪問調(diào)用進程的全局數(shù)據(jù)。使用同一DLL的每一個進程都有自己的DLL全局變量實例。如果多個線程并發(fā)訪問同一變量,則需要使用同步機制;對一個DLL的變量,如果希望每個使用DLL的線程都有自己的值,則應該使用線程局部存儲(TLS,Thread Local Strorage)。 在程序里加入預編譯指令,或在開發(fā)環(huán)境的項目設置里也可以達到設置數(shù)據(jù)段屬性的目的.必須給這些變量賦初值,否則編譯器會把沒有賦初始值的變量放在一個叫未被初始化的數(shù)據(jù)段中。

發(fā)表評論
還沒有評論,來說兩句吧...