[發明專利]一種C++模塊接口的調用方法及裝置在審
| 申請號: | 202011477687.X | 申請日: | 2020-12-15 |
| 公開(公告)號: | CN112559094A | 公開(公告)日: | 2021-03-26 |
| 發明(設計)人: | 姚罕琦;韋群躍;王小宣;周康韻;王喜妹 | 申請(專利權)人: | 浙江中控技術股份有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 林哲生 |
| 地址: | 310053 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 c++ 模塊 接口 調用 方法 裝置 | ||
本發明提供了一種C++模塊接口的調用方法及裝置,在預設存儲結構中定義與目標C++模塊接口具有相同內存結構的對象,然后獲取C++模塊接口對象實例的內存地址(即指針),將之轉換為在預設存儲結構中定義的具有相同內存結構的對象,通過訪問該對象中的數據成員,獲取目標C++模塊接口函數的執行地址,通過調用該執行地址完成對目標C++模塊接口的調用。由于在調用目標C++模塊接口的過程中不需要直接與目標C++模塊接口進行對接,因此,本發明不需要對C++模塊接口進行改變,在不影響C++模塊接口的通用性以及面向對象的優勢的基礎上,實現非C++語言開發的應用程序,如Python應用程序采用非侵入方式對C++模塊接口的調用。
技術領域
本發明涉及計算機技術領域,更具體的,涉及一種C++模塊接口的調用方法及裝置。
背景技術
Python和C++是兩種主流的計算機程序設計語言,被廣泛應用于軟件開發技術領域。
目前,采用Python開發的應用程序調用C++模塊接口一般都是通過侵入式的調用方式進行的,即需要在C++模塊接口的開發過程中對C++模塊接口進行修改。其中,一種方法為使用Python對象封裝C++模塊接口,采用Python開發的應用程序調用封裝后的C++模塊接口。但是,封裝后的C++模塊接口僅能被采用Python開發的應用程序所調用,不具備通用性,而且需要對現有的C++模塊進行大量改造。另一種方法為使C++模塊接口修改為全部使用C語言風格的接口,使其他語言開發的應用程序均可以調用該接口。但是,這樣不僅需要對現有C++模塊進行改造,而且C語言風格的接口喪失了C++模塊接口面向對象的優勢。
發明內容
有鑒于此,本發明提供了一種C++模塊接口的調用方法及裝置,實現非C++語言開發的應用程序,如Python應用程序采用非侵入方式對C++模塊接口的調用。
為了實現上述發明目的,本發明提供的具體技術方案如下:
一種C++模塊接口的調用方法,包括:
確定目標C++模塊接口的類型和內存結構;
根據所述目標C++模塊接口的類型和內存結構,在預設存儲結構中定義與所述目標C++模塊接口具有相同內存結構的對象;
在預設存儲結構中加載所述目標C++模塊,獲取指向所述目標C++模塊的接口對象實例的內存地址,將指向所述目標C++模塊的接口對象實例的內存地址轉換為在預設存儲結構中定義的與所述目標C++模塊接口具有相同內存結構的對象實例的內存地址;
訪問轉換后的對象的數據成員,獲取所述目標C++模塊接口對象實例的函數的執行地址,通過調用該執行地址,完成對所述目標C++模塊接口函數的調用。
可選的,所述根據所述目標C++模塊接口的類型和內存結構,在預設存儲結構中定義與所述目標C++模塊接口具有相同內存結構的對象,包括:
在所述目標C++模塊接口的類型為普通接口的情況下,定義一個與所述目標C++模塊接口具有相同內存結構的接口對象類型,該類型在實例化后存儲所述目標C++模塊接口對象實例對應的內存結構中指向虛函數表對象的地址;
在預設存儲結構中定義一個與所述目標C++模塊接口的虛函數表具有相同內存結構的虛函數表對象類型,該類型在實例化后存儲所述目標C++模塊接口對象實例的成員函數的實際執行地址。
可選的,所述根據所述目標C++模塊接口的類型和內存結構,在預設存儲結構中定義與所述目標C++模塊接口具有相同內存結構的對象,包括:
在所述目標C++模塊接口的類型為單繼承接口的情況下,定義一個與所述目標C++模塊接口具有相同內存結構的接口對象類型,該類型在實例化后存儲所述目標C++模塊接口對象實例對應的內存結構中指向虛函數表對象的地址;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江中控技術股份有限公司,未經浙江中控技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011477687.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種電控雙聯式電磁閥結構
- 下一篇:一種吊頂燈帶的生成方法及系統





