JP5425605B2 - ダイナミックライブラリを有するインターフェースを単純化するための方法 - Google Patents
ダイナミックライブラリを有するインターフェースを単純化するための方法 Download PDFInfo
- Publication number
- JP5425605B2 JP5425605B2 JP2009279266A JP2009279266A JP5425605B2 JP 5425605 B2 JP5425605 B2 JP 5425605B2 JP 2009279266 A JP2009279266 A JP 2009279266A JP 2009279266 A JP2009279266 A JP 2009279266A JP 5425605 B2 JP5425605 B2 JP 5425605B2
- Authority
- JP
- Japan
- Prior art keywords
- implementation
- interface class
- pointer
- stub
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 40
- 238000004590 computer program Methods 0.000 claims description 21
- 230000003068 static effect Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
図1、図2を参照にして、本発明の実施例おける方法200の概要を説明する。一般に、方法200は、(変更可能な実装ポインタを伴う)エンハンスドシングルトンパターンと組み合わされたC++継承技術を用いる。こうすれば、方法200は、特定のライブラリがまだロードされていない場合でも、ダイナミックライブラリシンボルへのアクセスを提供することができる。例えば、メインコードセグメント102によるアクセスを必要とするダイナミックライブラリ100内のシンボルは、アブストラクトC++シングルトンインターフェースクラスのメンバとして含ませることができる。ダイナミックライブラリ100は、インターフェース108のリアル実装104を内包する1つのC++シングルトンクラスを含み、メインコードセグメント102は、インターフェース108のスタブ実装106を内包する別のC++シングルトンクラスを含む。シングルトンデザインパターンにあるように、インターフェースクラスの静的メンバは、実装クラスへのポインタを内包する。最初、このポインタは、スタブ実装オブジェクトを指し示しているが、ダイナミックライブラリ100がロードされると、コンストラクタによって、ダイナミックライブラリ100からのリアル実装オブジェクトを指し示すように変更される。
Claims (20)
- 実装ポインタを有する静的メンバを含むインターフェースクラスを定義し、
前記インターフェースクラスのスタブ実装を含むメインコードセグメントをロードし、
スタブ実装オブジェクトを提供するために前記インターフェースクラスの前記スタブ実装をインスタンス化する処理であって、前記インターフェースクラスの前記スタブ実装は、前記実装ポインタを前記スタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含み、
前記インターフェースクラスのリアル実装を含むダイナミックライブラリをロードし、
リアル実装オブジェクトを提供するために前記インターフェースクラスの前記リアル実装をインスタンス化する処理であって、前記インターフェースクラスの前記リアル実装は、前記実装ポインタを前記リアル実装オブジェクトに定めるように設定された第2のコンストラクタを含む
方法。 - 請求項1記載の方法であって、更に、
前記実装ポインタが前記スタブ実装オブジェクトに定められている間に前記実装ポインタのコピーを格納する方法。 - 請求項2記載の方法であって、更に、
前記ダイナミックライブラリと前記インターフェースクラスの前記リアル実装とをアンロードする方法。 - 請求項3記載の方法であって、更に、
前記実装ポインタを前記格納された実装ポインタのコピーに定める方法。 - 前記インターフェースクラスは、エンハンスドシングルトンインターフェースクラスである請求項1記載の方法。
- 前記エンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスを含む請求項5記載の方法。
- 前記スタブ実装は、第1のポインタアレイを含み、前記リアル実装は、第2のポインタアレイを含む請求項1記載の方法。
- コンピュータにより実行されるプログラムであって、
信号保持媒体に記録され、
実装ポインタを有する静的メンバを含むインターフェースクラスを定義するための1つ又は2つ以上の命令と、
前記インターフェースクラスのスタブ実装を含むメインコードセグメントをロードするための1つ又は2つ以上の命令と、
スタブ実装オブジェクトを提供するために前記インターフェースクラスの前記スタブ実装をインスタンス化するための1つ又は2つ以上の命令であって、前記インターフェースクラスの前記スタブ実装は、前記実装ポインタを前記スタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含む、命令と、
前記インターフェースクラスのリアル実装を含むダイナミックライブラリをロードするための1つ又は2つ以上の命令と、
リアル実装オブジェクトを提供するために前記インターフェースクラスの前記リアル実装をインスタンス化するための1つ又は2つ以上の命令であって、前記インターフェースクラスの前記リアル実装は、前記実装ポインタを前記リアル実装オブジェクトに定めるように設定された第2のコンストラクタを含む、命令と、
を備えたコンピュータプログラム。 - 請求項8記載のコンピュータプログラムであって、更に、
前記実装ポインタが前記スタブ実装オブジェクトに定められている間に前記実装ポインタのコピーを格納するための1つ又は2つ以上の命令を備えるコンピュータプログラム。 - 請求項9記載のコンピュータプログラムであって、更に、
前記ダイナミックライブラリと前記インターフェースクラスの前記リアル実装とをアンロードするための1つ又は2つ以上の命令を備えるコンピュータプログラム。 - 請求項10記載のコンピュータプログラムであって、更に、
前記実装ポインタを前記格納された実装ポインタのコピーに定めるための1つ又は2つ以上の命令を備えるコンピュータプログラム。 - 請求項8記載のコンピュータプログラムであって、
前記インターフェースクラスは、エンハンスドシングルトンインターフェースクラスである、コンピュータプログラム。 - 請求項12記載のコンピュータプログラムであって、
前記エンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスを含む、コンピュータプログラム。 - 請求項8記載のコンピュータプログラムであって、
前記スタブ実装は、第1のポインタアレイを含み、前記リアル実装は、第2のポインタアレイを含むコンピュータプログラム。 - システムであって、
コンピューティングデバイスと、前記コンピューティングデバイス上で実行されるプログラムとを備え、
前記プログラムは、前記コンピューティングデバイスに、
実装ポインタを有する静的メンバを含むインターフェースクラスを定義させ、
前記インターフェースクラスのスタブ実装を含むメインコードセグメントをロードさせ、
スタブ実装オブジェクトを提供するために前記インターフェースクラスの前記スタブ実装をインスタンス化させるためであって、前記インターフェースクラスの前記スタブ実装は、前記実装ポインタを前記スタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含ませ、
前記インターフェースクラスのリアル実装を含むダイナミックライブラリをロードさせ、
リアル実装オブジェクトを提供するために前記インターフェースクラスの前記リアル実装をインスタンス化させるためであって、前記インターフェースクラスの前記リアル実装は、前記実装ポインタを前記リアル実装オブジェクトに定めるように設定された第2のコンストラクタを含ませる
システム。 - 請求項15記載のシステムであって、前記プログラムは、
前記コンピューティングデバイス上で実行されたときに前記コンピューティングデバイスに、前記実装ポインタが前記スタブ実装オブジェクトに定められている間に前記実装ポインタのコピーを格納させるための、1つ又は2つ以上の命令を含むシステム。 - 請求項16記載のシステムであって、更に、前記プログラムは、
前記コンピューティングデバイス上で実行されたときに前記コンピューティングデバイスに、前記ダイナミックライブラリと前記インターフェースクラスの前記リアル実装とをアンロードさせるための、1つ又は2つ以上の命令を含むシステム。 - 請求項17記載のシステムであって、前記プログラムは、
前記コンピューティングデバイス上で実行されたときに前記コンピューティングデバイスに、前記実装ポインタを前記格納された実装ポインタのコピーに定めさせるための、1つ又は2つ以上の命令を含むシステム。 - 前記インターフェースクラスは、エンハンスドシングルトンインターフェースクラスを含む請求項15記載のシステム。
- 前記エンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスである請求項19記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/384,359 | 2009-04-03 | ||
US12/384,359 US8250589B2 (en) | 2009-04-03 | 2009-04-03 | Method for simplifying interfaces having dynamic libraries |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010244516A JP2010244516A (ja) | 2010-10-28 |
JP5425605B2 true JP5425605B2 (ja) | 2014-02-26 |
Family
ID=42035917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009279266A Expired - Fee Related JP5425605B2 (ja) | 2009-04-03 | 2009-12-09 | ダイナミックライブラリを有するインターフェースを単純化するための方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8250589B2 (ja) |
EP (1) | EP2237150A1 (ja) |
JP (1) | JP5425605B2 (ja) |
KR (1) | KR101392046B1 (ja) |
CN (1) | CN101853154A (ja) |
TW (1) | TWI501152B (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271250A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Software Development Tool |
US20120089962A1 (en) * | 2010-10-08 | 2012-04-12 | International Business Machines Corporation | Unchanged Object Management |
CN103491111B (zh) * | 2012-06-08 | 2016-12-14 | 阿里巴巴集团控股有限公司 | 无线应用发布、实现方法与装置 |
TWI624783B (zh) * | 2015-09-17 | 2018-05-21 | 長茂科技股份有限公司 | 整合動態連結功能函式的行動裝置應用程式之建置系統及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297284A (en) * | 1991-04-09 | 1994-03-22 | Microsoft Corporation | Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language |
US5805885A (en) * | 1992-12-24 | 1998-09-08 | Microsoft Corporation | Method and system for aggregating objects |
EP1190304B1 (en) * | 1999-05-03 | 2003-02-19 | Sun Microsystems, Inc. | System and method for discovering and binding a program object |
TWI233034B (en) * | 2000-09-26 | 2005-05-21 | Advanced Control & Systems Inc | Hierarchical software application system |
US6996832B2 (en) * | 2001-05-30 | 2006-02-07 | Bea Systems, Inc. | System and method for software component plug-in framework |
GB2407656B (en) * | 2003-10-28 | 2008-12-17 | Symbian Ltd | Mapping of dynamic link libraries in computing devices |
US7882496B2 (en) * | 2004-06-01 | 2011-02-01 | International Business Machines Corporation | Method and system for metering execution of interpreted programs |
US20060080682A1 (en) * | 2004-10-12 | 2006-04-13 | Picsel Research Ltd. | Run time dynamic linking |
US7596536B2 (en) * | 2005-12-01 | 2009-09-29 | Exent Technologies, Ltd. | System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing device |
US8756616B2 (en) * | 2006-12-29 | 2014-06-17 | Core Wireless Licensing S.A.R.L. | System and method for reducing the static footprint of mixed-language JAVA classes |
-
2009
- 2009-04-03 US US12/384,359 patent/US8250589B2/en not_active Expired - Fee Related
- 2009-08-28 TW TW098128976A patent/TWI501152B/zh not_active IP Right Cessation
- 2009-08-29 EP EP09252102A patent/EP2237150A1/en not_active Withdrawn
- 2009-09-11 KR KR1020090085967A patent/KR101392046B1/ko not_active IP Right Cessation
- 2009-10-13 CN CN200910180290A patent/CN101853154A/zh active Pending
- 2009-12-09 JP JP2009279266A patent/JP5425605B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20100257546A1 (en) | 2010-10-07 |
US8250589B2 (en) | 2012-08-21 |
CN101853154A (zh) | 2010-10-06 |
KR101392046B1 (ko) | 2014-05-07 |
KR20100110710A (ko) | 2010-10-13 |
TW201037601A (en) | 2010-10-16 |
TWI501152B (zh) | 2015-09-21 |
EP2237150A1 (en) | 2010-10-06 |
JP2010244516A (ja) | 2010-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9934005B2 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
US8745601B1 (en) | Methods and systems for using data structures for operating systems | |
US8924944B2 (en) | Implementation of distributed methods that support generic functions | |
JP5042454B2 (ja) | 受信コンピューティングシステムのための方法とコンピュータプログラム、およびコンピューティングシステム | |
US7246346B2 (en) | System and method for persisting dynamically generated code in a directly addressable and executable storage medium | |
US9152442B2 (en) | Callbacks in virtual machines | |
WO2017219526A1 (zh) | 一种图形文件格式的使用方法及存储设备 | |
JP2005182775A (ja) | カーネルモードシミングのためのドライバ固有コンテキスト | |
WO2005085995A1 (en) | Method, system, and program for invoking methods between computer languages | |
US9098316B2 (en) | Routing function calls to specific-function dynamic link libraries in a general-function environment | |
CN112631684B (zh) | 可执行程序的运行方法、装置、电子设备及计算机存储介质 | |
JP5425605B2 (ja) | ダイナミックライブラリを有するインターフェースを単純化するための方法 | |
CN108334784A (zh) | 一种漏洞扫描方法和装置 | |
JP2006048645A (ja) | ドキュメントにコンテキスト情報を埋め込むための方法およびシステム | |
US9141352B2 (en) | Dynamically building locale objects at run-time | |
CN106940714A (zh) | 一种数据处理方法、装置及电子设备 | |
CN107943442A (zh) | 一种实现双屏显示的方法及设备 | |
JP2007226784A (ja) | インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン | |
CN113835748B (zh) | 基于html5的应用程序的打包方法、系统和可读介质 | |
US9183001B2 (en) | Simulation of static members and parameterized constructors on an interface-based API | |
US7870542B1 (en) | Calling system, method and computer program product | |
US11436062B2 (en) | Supporting universal windows platform and Win32 applications in kiosk mode | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
US20170192526A1 (en) | Input Service Providing Multiple Input Processors | |
US20220164282A1 (en) | Reducing load balancing work stealing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120816 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131021 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131127 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |