freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第十章 動(dòng)態(tài)鏈接庫編程(一)-全文預(yù)覽

2024-10-03 15:29 上一頁面

下一頁面
  

【正文】 name 39。 Exit。 export。程序清單如下: library Example。 退出過程 LibExit 中使用了一個(gè)系統(tǒng)定義變量 ExitCode,用于標(biāo)志退出時(shí)的狀態(tài)。 { 保存原來的退出過程指針 } ExitProc := LibExit。 begin if ExitCode = wep_System_Exit then begin { 系統(tǒng)關(guān)閉時(shí)的相應(yīng)處理 } end else begin { DLL 卸出時(shí)的相應(yīng) 處理 } end。 {$S} uses WinTypes, WinProcs。用戶可以把自己的過程名賦給 ExitProc。 初始化代碼完成的主要工作是: 、分配全局內(nèi)存塊、登錄窗口對(duì)象等初始化工作。這就是在工程文件中的 begin...end 部分添加初始化代碼。因此要求程序設(shè)計(jì)者在編寫代碼時(shí)要有充分、周到的考慮。當(dāng) DLLs 中發(fā)生一個(gè)運(yùn)行時(shí)間錯(cuò)時(shí),相應(yīng) DLLs 并不一定從內(nèi)存中移去(因?yàn)榇藭r(shí)其它應(yīng)用程序可能正在用它),而調(diào)用 DLLs 的程序異常中止。一些語言在小模式編譯下有 這種假設(shè),但使用 Delphi 可以避免這種情況。要使用必須通過過程或函數(shù)界面才能完成。 對(duì)于那些其它應(yīng)用程序常常要調(diào)用的過程或函數(shù),使用 resident 指示是合適的。 Index 后所接數(shù)字的范圍為 1...32767。 其它應(yīng)用程序?qū)⒂眯旅?(MyInstr)調(diào)用該過程或函數(shù)。這一步是可選的; ,生成動(dòng)態(tài)鏈接庫文件。 對(duì)于 Delphi 的用戶,由于沒有 DLLs 模板,因此: (1).建立一個(gè)一般的應(yīng)用程序,并打開工程文件; (2).移去窗體和相應(yīng)的代碼單元; (3).在工程文件中,把 program 改成 library,移去 Uses 子句中的 Forms,并添加適當(dāng)?shù)膸靻卧ㄒ话?SysUtils、 Classes 是需要的),刪去 begin...end之間的所有代碼。而這些函數(shù)或過程本身必須用 export 編譯指令進(jìn)行編譯。 exprots 子句 。 一般工程文件的格式為: program 工程標(biāo)題 。事實(shí)上作為 DLLs 主體的 DLL函數(shù)的編寫,除了在內(nèi)存、資源的管理上有所不同外,并不需要其它特別的手段。 Delphi 的出現(xiàn),在這一方面,正如在其它許多方面所做的那樣,減輕了開發(fā)者的負(fù)擔(dān)。另一方面即使使用 Windows API,由于 Delphi把 API 函數(shù)和其它 Windows DLLs 函數(shù)重新組織到了幾個(gè)庫單元中,因而也不必使用特殊的調(diào)用格式。這包括 Windows API 函數(shù) ( , , ,? ),各種驅(qū)動(dòng)程序文件,各種帶有 .Fon和 .Fot 擴(kuò)展名的字體資源文件等。任何應(yīng)用程序都可以共享由裝入內(nèi)存的 DLLs 管理的內(nèi)存資源塊。此時(shí) Windows 才在 DLLs 中尋找被調(diào)用函數(shù),并把它的地址傳送給調(diào)用程序。對(duì)于常規(guī)的函數(shù)庫,鏈接器從中拷貝它需要的所有庫函數(shù),并把確切的函數(shù) 地址傳送給調(diào)用這些函數(shù)的程序。 Windows 的發(fā)展要求允許同時(shí)運(yùn)行的幾個(gè)程序共享一組函數(shù)的單一拷貝。在鏈接應(yīng)用程序的過程中,鏈接器從庫文件中拷貝程序調(diào)用的函數(shù)代碼,并把這些函數(shù)代碼添加到可執(zhí)行文件中。所有的 C 語言標(biāo)準(zhǔn)庫函數(shù)都存放在某一函數(shù)庫中,同時(shí)用戶也可以用 LIB程序創(chuàng)建自己的函數(shù)庫。如果為了完成屏幕輸出、 消息處理、內(nèi)存管理、對(duì)話框等操作,每個(gè)程序都不得不擁有自己的函數(shù),那么 Windows 程序?qū)⒆兊梅浅}嫶蟆? 動(dòng)態(tài)鏈接庫的工作原理 “動(dòng)態(tài)鏈接”這幾字指明了 DLLs 是如何工作的。直到程序運(yùn)行并調(diào)用一個(gè) DLLs中的函數(shù)時(shí),該程序才要求這個(gè)函數(shù)的地址。 DLLs 不僅提供了函數(shù)重用的機(jī)制,而且提供 了數(shù)據(jù)共享的機(jī)制。 Windows 系統(tǒng)的動(dòng)態(tài)鏈接庫 Windows 本身就是由大量的動(dòng)態(tài)鏈接庫支持的。這一方面是因?yàn)?Delphi 提供了豐富的函數(shù)使用戶不必直接去使用 Windows API。用戶需要對(duì)定義文件、工程文件進(jìn)行一系列的修改以適應(yīng)創(chuàng)建和使用 DLLs 的需要。 DLLs 的編寫和調(diào)用 DLLs 的編寫 在 Delphi 環(huán)境中,編寫一個(gè) DLLs 同編寫一個(gè)一般的應(yīng)用程序并沒有太大的區(qū)別 。如果想查看工程文件,則可以打開 View 菜單選擇 Project Source項(xiàng),此時(shí)工程文件的代碼就會(huì)出現(xiàn)在屏幕的 Code Editor(代碼編輯器 )中。 uses 子句 。用 program 關(guān)鍵字生成的是 .exe 文件,而用 library 關(guān)鍵字生成的是 .dll 文件; DLLs 要輸出供其它應(yīng)用程序使用的函數(shù)或過程,則必須將這些函數(shù)或過程列在 exports 子句中。 編寫一般 DLLs 的步驟 編寫一般 DLLs 的步驟如下: Delphi 的應(yīng)用程序模板,建立一個(gè) DLLs 程序框架??梢岳脴?biāo)準(zhǔn)指示 name 、 Index、 resident 以方便和加速過程 /函數(shù)的調(diào)用; 。如: exports InStr name MyInstr。如果不
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1