[發明專利]一種動態鏈接庫裝載和鏈接的方法、裝置有效
| 申請號: | 201210082799.4 | 申請日: | 2012-03-26 |
| 公開(公告)號: | CN103365668B | 公開(公告)日: | 2017-12-26 |
| 發明(設計)人: | 李佳;陸見微;郭琦;黃少華 | 申請(專利權)人: | 聯想(北京)有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京中博世達專利商標代理有限公司11274 | 代理人: | 申健 |
| 地址: | 100085 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 動態 鏈接 裝載 方法 裝置 | ||
技術領域
本發明涉及動態鏈接庫技術領域,尤其涉及一種不同代碼指令集類型的處理器下的動態鏈接庫裝載和鏈接的方法和裝置。
背景技術
動態鏈接庫為可執行的一組代碼,用于完成應用程序中的某些數據的計算處理。如在創建應用程序時,不需要從頭開始創建程序,而是可以調用動態鏈接庫實現該應用程序的某些計算處理工作。但是該動態鏈接庫中的文件必須與應用程序的指令集相同,這樣在調用動態鏈接庫時,該計算機系統是可以執行該應用程序調用的動態鏈接庫。
隨著計算機技術的迅猛發展,計算機系統使用的處理器和操作系統也紛繁復雜。這樣對于采用同一操作系統、不同指令集架構處理器的計算機系統之間,即使是具有相同功能的動態鏈接庫文件也無法共享。
發明內容
本發明的實施例提供一種動態鏈接庫裝載和鏈接的方法和裝置,能夠使得采用同一操作系統、不同指令集架構處理器的設備之間共享相同功能的動態鏈接庫。
為達到上述目的,本發明的實施例采用如下技術方案:
一種動態鏈接庫裝載和鏈接的方法,包括:
在裝載完應用程序后,將所述應用程序需要調用的動態鏈接庫裝載到內存;
處理器單元響應所述應用程序調用所述動態鏈接庫的指令,若所述動態鏈接庫的第一代碼指令集類型與處理器單元的第二代碼指令集類型不屬于同一指令集類型,啟動模擬處理器單元運行所述第一代碼指令集類型的動態鏈接庫獲取執行結果,所述執行結果的代碼類型為所述第二代碼指令集類型。
一種動態鏈接庫裝載和鏈接的裝置,包括處理器單元和模擬處理器單元,所述處理器單元,用于在裝載完應用程序后,將所述應用程序需要調用的動態鏈接庫裝載到內存;
所述處理器單元,還用于響應所述應用程序調用所述動態鏈接庫的指令,若所述動態鏈接庫的第一代碼指令集類型與處理器單元的第二代碼指令集類型不屬于同一指令集類型,啟動模擬處理器單元運行所述第一代碼指令集類型的動態鏈接庫獲取執行結果;
所述模擬處理器單元,用于響應所述處理器單元的啟動指令,運行所述第一代碼指令集類型的動態鏈接庫獲取執行結果,所述執行結果的代碼類型為所述第二代碼指令集類型。
本發明實施例提供了一種動態鏈接庫的裝載和鏈接的方法和裝置,在裝載完應用程序后,將所述應用程序需要調用的動態鏈接庫裝載到內存,處理器單元響應所述應用程序調用所述動態鏈接庫的指令,首先判斷所述動態鏈接庫的第一代碼指令集類型與處理器單元的第二代碼指令集類型是否屬于同一指令集類型,若所述動態鏈接庫的代碼指令集類型與處理器單元的代碼指令集類型不屬于同一指令集類型,處理器單元啟動模擬處理器單元運行所述第一代碼指令集類型的動態鏈接庫獲取執行結果,所述執行結果的代碼類型為所述第二代碼指令集類型。這樣,通過采用模擬處理器單元執行第一代碼指令集類型的動態鏈接庫,從而使得采用同一操作系統、不同指令集架構處理器單元的設備之間可以共享相同功能的動態鏈接庫。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例一提供的一種動態鏈接庫裝載和鏈接的方法流程圖;
圖2為本發明實施例二提供的另一種動態鏈接庫裝載和鏈接的方法流程圖;
圖3為本發明實施例三提供的一種動態鏈接庫裝載和鏈接的裝置結構框圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
實施例一、
本發明實施例提供了一種動態鏈接庫裝載和鏈接的方法,如圖1所示,包括:
S101、在裝載完應用程序后,將所述應用程序需要調用的動態鏈接庫裝載到內存。
所述動態鏈接庫是編譯產生的可執行代碼文件,包括了至少一個函數,例如動態鏈接庫aa.dll中包含了sum(x,y)、max(x,y,z),sin(x)三個函數,分別用于計算x,y之和,x,y和z三個數的最大值,x的正弦函數值,這三個函數可以被用于應用程序的不同功能模塊中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于聯想(北京)有限公司,未經聯想(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210082799.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種高壓線路高空施工吊物裝置
- 下一篇:起重機起升限位裝置





