[發明專利]一種調用成員變量的方法和裝置有效
| 申請號: | 201210468095.0 | 申請日: | 2012-11-19 |
| 公開(公告)號: | CN103823663B | 公開(公告)日: | 2017-12-01 |
| 發明(設計)人: | 牛東升 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司11138 | 代理人: | 羅振安 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 調用 成員 變量 方法 裝置 | ||
技術領域
本發明涉及計算機技術領域,特別涉及一種調用成員變量的方法和裝置。
背景技術
在計算機系統中,動態鏈接庫包括多個類對象,而類對象包括多個成員變量,當應用程序運行過程中需要使用某個成員變量時,首先需要從該動態鏈接庫中調用該成員變量。
目前,調用成員變量的具體過程為:在應用程序編譯時,編譯器會將應用程序所使用的成員變量在其所在類對象中的偏移量記載進應用程序。當應用程序運行過程中需要某個成員變量時,終端獲取該成員變量所在類對象的首地址,根據該成員變量所在類對象的首地址和編譯時記載的偏移量,從動態鏈接庫中調用該成員變量。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
在不同版本的動態鏈接庫中成員變量的偏移量可能不同,而編譯時所確定的偏移量只有一份,以及不同終端生產廠商在生成終端時可能會修改動態鏈接庫,使動態鏈接庫中的成員變量的位置發生變化,如此現有技術根據編譯時確定的成員變量的位置順序調用動態鏈接庫包括的成員變量時可能出現調用出錯現象。
發明內容
為了避免調用動態鏈接庫包括的成員變量時出現調用出錯現象,本發明實施例提供了一種調用成員變量的方法和裝置。所述技術方案如下:
一方面,提供了一種調用成員變量的方法,所述方法包括:
對動態鏈接庫包括的成員變量進行分析,獲取所述成員變量在其所在類對象中的偏移量;
將所述成員變量的標識和所述成員變量在其所在類對象中的偏移量存儲在成員變量的標識和偏移量的對應關系中;
當調用待調用的成員變量時,根據所述成員變量的標識和偏移量的對應關系,從所述動態鏈接庫中調用所述待調用的成員變量。
其中,所述對動態鏈接庫包括的成員變量進行分析,獲取所述成員變量在其所在類對象中的偏移量,包括:
為動態鏈接庫包括的成員變量分別設置對應的唯一一個魔數,將所述動態鏈接庫包括的成員變量替換為其對應的魔數;
將所述動態鏈接庫包括的成員變量的標識和所述成員變量對應的魔數存儲在成員變量的標識和魔數的對應關系中;
根據所述成員變量的標識和魔數的對應關系,獲取所述動態鏈接庫包括的成員變量在其所在類對象中的偏移量。
其中,所述為動態鏈接庫包括的成員變量分別設置對應的唯一一個魔數,將所述動態鏈接庫包括的成員變量替換為其對應的魔數,包括:
從動態鏈接庫包括的第一個成員變量進行掃描;
設置所述掃描的成員變量對應的唯一一個魔數;
在所述動態鏈接庫中將所述成員變量替換為所述成員變量對應的魔數。
進一步地,所述根據所述成員變量的標識和魔數的對應關系,獲取所述動態鏈接庫包括的成員變量在其所在類對象中的偏移量,包括:
從所述成員變量的標識和魔數的對應關系中,獲取所述動態鏈接庫包括的成員變量對應的魔數;
設置指針指向所述成員變量所在類對象包括的第一個魔數,設置指針移動次數的初值;
比較所述指針指向的魔數與所述成員變量對應的魔數,如果兩者相同,則設置所述成員變量的偏移量為所述指針移動次數,如果兩者不同,則設置指針指向下一個魔數,增加所述指針移動次數。
其中,所述當調用待調用的成員變量時,根據所述成員變量的標識和偏移量的對應關系,從所述動態鏈接庫中調用所述待調用的成員變量,包括:
當調用待調用的成員變量時,根據所述待調用的成員變量的標識,從所述成員變量的標識和偏移量的對應關系中獲取所述待調用的成員變量在其所在類對象中的偏移量;
獲取所述待調用的成員變量所在類對象的首地址;
根據所述待調用的成員變量在其所在類對象中的偏移量和所述待調用的成員變量所在類對象的首地址,從所述動態鏈接庫中調用所述待調用的成員變量。
另一方面,提供了一種調用成員變量的裝置,所述裝置包括:
獲取模塊,用于對動態鏈接庫包括的成員變量進行分析,獲取所述成員變量在其所在類對象中的偏移量;
存儲模塊,用于將所述成員變量的標識和所述獲取模塊獲取的所述成員變量在其所在類對象中的偏移量存儲在成員變量的標識和偏移量的對應關系中;
調用模塊,用于當調用待調用的成員變量時,根據所述存儲模塊存儲的所述成員變量的標識和偏移量的對應關系,從所述動態鏈接庫中調用所述待調用的成員變量。
其中,所述獲取模塊包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210468095.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:中效復合空氣過濾袋
- 下一篇:一種帶云存儲的移動電源





