程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> Windows下DLL編程技術及應用

Windows下DLL編程技術及應用

編輯:vc教程

摘 要: 本文介紹了DLL技術在Windows編程中的基本運用方法及應用,給出了直接內存訪問及端口I/O的兩個實用DLL的全部源代碼。

關鍵詞: DLL Windows 內存訪問 I/O

一 、引 言

由於Windows為微機提供了前所未有的標准用戶界面、圖形處理能力和簡單靈便的操作,絕大多數程序編制人員都已轉向或正在轉向Windows編程。在許多用戶設計的實際應用系統的編程任務中,常常要實現軟件對硬件資源和內存資源的訪問,例如端口I/O、DMA、中斷、直接內存訪問等等 。若是編制DOS程序,這是輕而易舉的事情,但要是編制Windows程序,尤其是WindowsNT環境下的程序,就會顯得較困難。

因為Windows具有"與設備無關"的特性,不提倡與機器底層的東西打交道,如果直接用Windows的 API函數或I/O讀寫指令進行訪問和操作,程序運行時往往就會產生保護模式錯誤甚至死機,更嚴重的情況會導致系統崩潰。那麼在Windows下怎樣方便地解決上述問題呢?用DLL(Dynamic Link Libraries)技術就是良好途徑之一。

DLL是Windows最重要的組成要素,Windows中的許多新功能、新特性都是通過DLL來實現的,因此掌握它、應用它是非常重要的。其實Windows本身就是由許多的DLL組成的,它最基本的三大組成模塊Kernel、GDI和User 都是DLL,它所有的庫模塊也都設計成DLL。凡是以.DLL、.DRV、.FON、.SYS和許多以.EXE為擴展名的系統文件都是DLL,要是打開Windows\System目錄,就可以看到許多的DLL模塊。盡管DLL在Ring3優先級下運行,仍是實現硬件接口的簡便途徑。DLL可以有自己的數據段,但沒有自己的堆棧,使用與調用它的應用程序相同的堆棧模式,減少了編程設計上的不便;同時,一個DLL在內存中只有一個實例,使之能高效經濟地使用內存;DLL實現的代碼封裝性,使得程序簡潔明晰;此外還有一個最大的特點,即DLL的編制與具體的編程語言及編譯器無關,只要遵守DLL的開發規范和編程策略,並安排正確的調用接口,不管用何種編程語言編制的DLL都具有通用性。例如在BC31中編制的DLL程序,可用於BC、VC、VB、Delphi等多種語言環境中。筆者在BC31環境下編譯了Windows下直接內存訪問和端口I/O兩個DLL,用在多個自制系統的應用軟件中,

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved