為Linux 應用程式編寫 DLL(轉)
為Linux 應用程式編寫 DLL(轉)[@more@]外掛和 DLL 通常是用來無須編寫整個新應用程式而新增功能的極好方法。在 Linux 中,外掛和 DLL 以動態庫形式實現。電子商務顧問兼設計師 Allen Wilson 介紹了動態庫並且向您演示瞭如何在某個應用程式正在執行之後使用動態庫來改變該應用程式。
Internet 瀏覽器使用者非常熟悉外掛的概念。從 Web 上下載外掛,通常這些外掛為瀏覽器的音訊、影片以及特殊效果提供增強支援。一般來講,在不更改原有應用程式的情況下,外掛為現有應用程式提供新功能。
DLL 是程式函式,它們在設計和構建應用程式時為該程式所知。設計應用程式的主程式時使用程式框架或底板,這些程式框架或底板在執行時選擇性地裝入所需的 dll,這些 dll 位於磁碟上同主程式分離的一些檔案中。這一打包和動態裝入提供了靈活的升級、維護、以及許可策略。
隨 Linux 一起交付的還有幾千條命令和應用程式,它們至少都需要 libc 庫函式。如果 libc 函式與每一個應用程式都打包在一起,那麼磁碟上將會出現幾千個相同函式的副本。Linux 構建這些應用程式,以使用通常所需的系統庫的單個系統級副本,而不浪費磁碟空間。Linux 甚至做得更好,每個需要公共系統庫函式的程式使用單個的系統級內的副本,一次性將該副本裝入到記憶體併為各程式所共享。
在 Linux 中,外掛和 dll 以動態庫形式實現。本文的餘下部分是在應用程式執行之後使用動態庫更改該應用程式的示例。
Linux 動態連結
Linux 中的應用程式以以下兩種方式之一連結到外部函式:要麼在構建時與靜態庫(lib*.a)靜態地連結,並且將庫程式碼包含在該應用程式的可執行檔案裡;要麼在執行時與共享庫(lib*.so)動態地連結。透過動態連結裝入器,將動態庫對映進應用程式的可執行記憶體中。在啟動應用程式之前,動態連結裝入器將所需的共享目標庫對映到應用程式的記憶體,或者使用系統共享的目標併為應用程式解析所需的外部引用。現在應用程式就可以執行了。
作為示例,下面有一個演示 Linux 中對動態連結庫的預設使用的小程式:
Internet 瀏覽器使用者非常熟悉外掛的概念。從 Web 上下載外掛,通常這些外掛為瀏覽器的音訊、影片以及特殊效果提供增強支援。一般來講,在不更改原有應用程式的情況下,外掛為現有應用程式提供新功能。
DLL 是程式函式,它們在設計和構建應用程式時為該程式所知。設計應用程式的主程式時使用程式框架或底板,這些程式框架或底板在執行時選擇性地裝入所需的 dll,這些 dll 位於磁碟上同主程式分離的一些檔案中。這一打包和動態裝入提供了靈活的升級、維護、以及許可策略。
隨 Linux 一起交付的還有幾千條命令和應用程式,它們至少都需要 libc 庫函式。如果 libc 函式與每一個應用程式都打包在一起,那麼磁碟上將會出現幾千個相同函式的副本。Linux 構建這些應用程式,以使用通常所需的系統庫的單個系統級副本,而不浪費磁碟空間。Linux 甚至做得更好,每個需要公共系統庫函式的程式使用單個的系統級內的副本,一次性將該副本裝入到記憶體併為各程式所共享。
在 Linux 中,外掛和 dll 以動態庫形式實現。本文的餘下部分是在應用程式執行之後使用動態庫更改該應用程式的示例。
Linux 動態連結
Linux 中的應用程式以以下兩種方式之一連結到外部函式:要麼在構建時與靜態庫(lib*.a)靜態地連結,並且將庫程式碼包含在該應用程式的可執行檔案裡;要麼在執行時與共享庫(lib*.so)動態地連結。透過動態連結裝入器,將動態庫對映進應用程式的可執行記憶體中。在啟動應用程式之前,動態連結裝入器將所需的共享目標庫對映到應用程式的記憶體,或者使用系統共享的目標併為應用程式解析所需的外部引用。現在應用程式就可以執行了。
作為示例,下面有一個演示 Linux 中對動態連結庫的預設使用的小程式:
QUOTE:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-946904/,如需轉載,請註明出處,否則將追究法律責任。
下一篇:
Linux作業系統的高階電源管理(轉)
請登入後發表評論
登入
全部評論
|
相關文章
- 用QT在Windows下編寫dll程式QTWindows
- 編寫Linux實用程式的藝術(轉)Linux
- 用Delphi編寫DelTree程式 (轉)
- 編寫高效的MySQL應用(轉)MySql
- 用PHP編寫Android應用程式PHPAndroid
- windows下如何使用QT編寫dll程式WindowsQT
- 用C語言編寫Linux實用程式的藝術(轉)C語言Linux
- 編譯 asp 應用程式成為 exe 檔案 (轉)編譯
- 用VC++編寫CGI程式 (轉)C++
- 用VB編寫抽獎程式 (轉)
- 編寫適用於模擬器的 Linux 程式碼(轉)Linux
- Windows下DLL程式設計技術及應用 (轉)Windows程式設計
- 編寫友好的命令列應用程式命令列
- 編寫iOS應用程式有何不同iOS
- 用Delphi編寫安裝程式(1) (轉)
- 用VB編寫標準CGI程式 (轉)
- 用 C++Builder 編寫 Tray 程式 (轉)C++UI
- 全方位解讀DLL檔案—編寫DLL
- 編寫第一個HADOOP應用程式Hadoop
- C++編寫DLL的方法C++
- 用VC++6.0編寫撥號程式 (轉)C++
- 用 Delphi 編寫 VxD 裝置驅動程式(轉) (轉)
- Linux網路驅動程式編寫(四)(轉)Linux
- Linux網路驅動程式編寫(三)(轉)Linux
- Linux網路驅動程式編寫(二)(轉)Linux
- Linux網路驅動程式編寫(一)(轉)Linux
- 用VB編寫COM+應用時碰到問題? (轉)
- Linux 用彩色的vi寫程式(轉)Linux
- Go 編寫 Web 應用GoWeb
- 為什麼我拒絕用Kotlin編寫安卓應用?Kotlin安卓
- 使用rust編寫dwm status-bar應用程式Rust
- C++ Builder 高手進階 (五)用BCB編寫多執行緒應用程式 (轉)C++UI執行緒
- 用BCB編寫身份證號識別程式 (轉)
- 用Delphi編寫塗鴉桌面的小程式 (轉)
- 用DLL控制Windows中程式的方法(轉)Windows
- 在linux下用vim編寫一個C程式LinuxC程式
- 編寫執行緒安全的JSP應用程式執行緒JS
- 如何編寫簡單的應用window視窗程式