JP5425605B2 - ダイナミックライブラリを有するインターフェースを単純化するための方法 - Google Patents

ダイナミックライブラリを有するインターフェースを単純化するための方法 Download PDF

Info

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
Application number
JP2009279266A
Other languages
English (en)
Other versions
JP2010244516A (ja
Inventor
ジェイムス・エー.・リン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2010244516A publication Critical patent/JP2010244516A/ja
Application granted granted Critical
Publication of JP5425605B2 publication Critical patent/JP5425605B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-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

本発明は、全体として、コンピュータプログラミングの分野に関するものであり、特に、ダイナミックライブラリを有するインターフェースを単純化するためのシステム、方法、及びコンピュータプログラム製品に関するものである。
ダイナミックライブラリは、メモリにコードをダウンロードすることをそのコードがコンピュータプログラムの実行に必要になるまで回避するために用いることができる。弱いシンボルリンケージ機能を含むリンカは、コンピュータプログラムのメインコードがリンクタイムエラーを生じずにダイナミックライブラリ内のシンボルを参照することを可能にする。しかしながら、このタイプのリンカは、これらのシンボルを参照するコードに対し、シンボルの利用時にランタイムエラーをチェックするように要求することがある。また、リンカによっては、弱いシンボルリンケージをサポートしないものがあったり、環境によっては、弱いシンボルリンケージがディセーブルされたりする。このような場合、コンピュータプログラムのメインコードセグメントは、リンクタイムエラーを生じずにダイナミックライブラリ内のシンボルを参照することができなくなるであろう。
或いは、別のアプローチでは、メインコードによって参照可能なダイナミックライブラリ内の全てのシンボルを、シンボルテーブルに含ませる必要があるであろう。この実装形態では、メインコードは、これらのシンボルを参照する際に、それらシンボルの存在をチェックするために、シンボルテーブルルックアップルーチンを用いる。そして、必要なシンボルが見つかったら、リンクタイムエラーを回避するために、ポインタを通じてアクセスすることができる。この技術は、コンピュータプログラミング環境に対して不必要な複雑性を導入するうえに、シンボルテーブルのサイズを大きくし、シンボルテーブルルックアップを実施するため及びその結果をチェックするための余分なランタイムチェックを必要とするであろう。
特開2004−288076号公報
この方法は、実装ポインタを有する静的メンバを含むインターフェースクラスを定義することを含むことができる。この方法は、また、インターフェースクラスのスタブ実装を含むメインコードセグメントをロードすることを含むことができる。また、方法は、スタブ実装オブジェクトを提供するためにインターフェースクラスのスタブ実装をインスタンス化することを含むことができる。インターフェースクラスのスタブ実装は、実装ポインタをスタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含むことができる。更に、方法は、インターフェースクラスのリアル実装を含むダイナミックライブラリをロードすることを含んでよい。更にまた、この方法は、リアル実装オブジェクトを提供するためにインターフェースクラスのリアル実装をインスタンス化することを含むことができる。インターフェースクラスのリアル実装は、実装ポインタをリアル実装オブジェクトに定めるように設定された第2のコンストラクタを含むことができる。
コンピュータプログラミング製品は、実装ポインタを有する静的メンバを含むインターフェースクラスを定義するための1つ又は2つ以上の命令を保持する信号保持媒体を含むことができる。コンピュータプログラミング製品は、また、インターフェースクラスのスタブ実装を含むメインコードセグメントをロードするための1つ又は2つ以上の命令を含むことができる。また、コンピュータプログラミング製品は、スタブ実装オブジェクトを提供するためにインターフェースクラスのスタブ実装をインスタンス化するための1つ又は2つ以上の命令を含むことができる。インターフェースクラスのスタブ実装は、実装ポインタをスタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含むことができる。更に、コンピュータプログラミング製品は、インターフェースクラスのリアル実装を含むダイナミックライブラリをロードするための1つ又は2つ以上の命令を含むことができる。更にまた、コンピュータプログラミング製品は、リアル実装オブジェクトを提供するためにインターフェースクラスのリアル実装をインスタンス化するための1つ又は2つ以上の命令を含むことができる。インターフェースクラスのリアル実装は、実装ポインタをリアル実装オブジェクトに定めるように設定された第2のコンストラクタを含むことができる。
システムは、コンピューティングデバイスと、該コンピューティングデバイス上で実行されたときにコンピューティングデバイスに、実装ポインタを有する静的メンバを含むインターフェースクラスを定義させる命令と、を含むことができる。システムは、また、コンピューティングデバイス上で実行されたときにコンピューティングデバイスに、インターフェースクラスのスタブ実装を含むメインコードセグメントをロードさせる命令を含むことができる。また、システムは、コンピューティングデバイス上で実行されたときにコンピューティングデバイスに、スタブ実装オブジェクトを提供するためにインターフェースクラスのスタブ実装をインスタンス化させる命令を含むことができる。インターフェースクラスのスタブ実装は、実装ポインタをスタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含むことができる。更に、システムは、コンピューティングデバイス上で実行されたときにコンピューティングデバイスに、インターフェースクラスのリアル実装を含むダイナミックライブラリをロードさせる命令を含むことができる。更にまた、システムは、コンピューティングデバイス上で実行されたときにコンピューティングデバイスに、リアル実装オブジェクトを提供するためにインターフェースクラスのリアル実装をインスタンス化させる命令を含むことができる。インターフェースクラスのリアル実装は、実装ポインタをリアル実装オブジェクトに定めるように設定された第2のコンストラクタを含むことができる。
以下の説明は、いずれも例示的で説明的なものに過ぎず、必ずしも本発明の内容を限定するものではない。添付の図面は、本開示の内容を例示し、明細書の説明共々、本発明の原理を例示する。当業者ならば、下記図面を参照にして、本願記載の技術の数々の利点をより良く理解することができる。
本発明の実施例おける幾つかのクラスを示したクラス図である。 本発明の実施例おける方法を示した流れ図である。 本発明の実施例おけるコンピュータプログラム製品の部分図である。 本発明の実施例おける代表的なシステムの部分図である。
添付の図面に例示された内容に沿って、以下本発明の一実施例について説明する。
図1、図2を参照にして、本発明の実施例おける方法200の概要を説明する。一般に、方法200は、(変更可能な実装ポインタを伴う)エンハンスドシングルトンパターンと組み合わされたC++継承技術を用いる。こうすれば、方法200は、特定のライブラリがまだロードされていない場合でも、ダイナミックライブラリシンボルへのアクセスを提供することができる。例えば、メインコードセグメント102によるアクセスを必要とするダイナミックライブラリ100内のシンボルは、アブストラクトC++シングルトンインターフェースクラスのメンバとして含ませることができる。ダイナミックライブラリ100は、インターフェース108のリアル実装104を内包する1つのC++シングルトンクラスを含み、メインコードセグメント102は、インターフェース108のスタブ実装106を内包する別のC++シングルトンクラスを含む。シングルトンデザインパターンにあるように、インターフェースクラスの静的メンバは、実装クラスへのポインタを内包する。最初、このポインタは、スタブ実装オブジェクトを指し示しているが、ダイナミックライブラリ100がロードされると、コンストラクタによって、ダイナミックライブラリ100からのリアル実装オブジェクトを指し示すように変更される。
以下の説明では、幾らかの特異性を伴うC++の構文及び構造が用いられる。例えば、以下の説明は、エンハンスドシングルトンインターフェースクラスと言われるインターフェースクラスを含む。より具体的には、このエンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスとして実装される。しかしながら、この説明は、説明目的で提供されるものであり、本開示に対して制約的であることを意図していない。例えば、以下の説明は、C++に言及しているが、本開示では、カプセル化を用いる尚且つ/又はC++に類似のインヘリタンス特徴を含む任意のプログラミング言語が用いることができる。具体的な一実施形態では、Cプログラミング言語が用いることができる。C実装では、後述されるスタブ実装は、第1のポインタアレイを含んでよく、リアル実装は、第2のポインタアレイを含むことができる(各シンボルに代わって1つのポインタが用いられる)。この実装では、各シンボルは、アレイへのインデックス付けによってアクセスされると考えられる。
次に、方法200を参照する(とともに、これらの関係を示した図1のクラス図に特に注意を払う)と、先ず、処理210において、実装ポインタを有する静的メンバを含むインターフェースクラス108が定義される。次いで、ダイナミックライブラリ100がロードされる前に、処理220において、インターフェースクラス108のスタブ実装106を含むメインコードセグメント102がロードされる。次に、処理230において、スタブ実装オブジェクトを提供するためにスタブ実装106がインスタンス化される。インターフェースクラス108のスタブ実装106は、実装ポインタをスタブ実装オブジェクトに定めるように設定された第1のコンストラクタ110を含む。例えば、スタンダードシングルトンパターンにあるように、第1のコンストラクタ110は、実装ポインタを実装オブジェクト(この場合はスタブ実装オブジェクト)を指し示すように定めるために、「interface::setInstance()」を用いることができる。次いで、クライアント112は、シンボル114にアクセスするにあたり、構文「Interface::getInstance()->symbol1()」を用いることができる。この場合、実際に呼び出されるルーチンは、「StubImplementation::symbol1()」である。
処理240では、ある時点において、インターフェースクラス108のリアル実装104を含むダイナミックライブラリ100がロードされる。次いで、処理250において、リアル実装オブジェクトを提供するためにリアル実装104がインスタンス化される。インターフェースクラス108のリアル実装104は、実装ポインタをリアル実装オブジェクトに定めるように設定された第2のコンストラクタ116を含む。例えば、第2のコンストラクタ116は、実装ポインタをリアル実装オブジェクトを指し示すように定めるために、「interface::setInstance()」を用いることができる。次いで、クライアント112は、構文「Interface::getInstance()->symbol1()」を用いるが、このときに実際に呼び出されるルーチンは、「RealImplementation::symbol1()」である。
第2のコンストラクタ116が実装ポインタをリアル実装オブジェクトに定める(方法200の処理250参照)より前に、処理260において、実装ポインタがスタブ実装オブジェクトに定められている間に、実装ポインタのコピーを格納してもよい。もし、のちのとある時点において、ダイナミックライブラリ100がアンロードされた場合は、リアル実装のデストラクタ118は、インターフェースポインタを元の値に復元するために、「Interface::unsetInstance()」などの構文を用いることができる。例えば、処理270において、ダイナミックライブラリとインターフェースクラスのリアル実装とをアンロードすることができる。そして、処理280において、実装ポインタを、格納してある実装ポインタのコピーに定めることができる。一実施形態では、「Implementation::originalImplementation」ポインタが用いられる。この実施形態では、それは、最初の「Interface::setInstance()」の呼び出しによって、先立って割り当てられている。
図3は、コンピューティングデバイス上でコンピュータプロセスを実行するためのコンピュータプログラム304を含む代表的なコンピュータプログラム製品300を示した部分図である。信号保持媒体302を使用して、代表的なコンピュータプログラム製品300の実施形態が提供される。該実施形態は、実装ポインタを有する静的メンバを含むインターフェースクラスを定義するためと、インターフェースクラスのスタブ実装を含むメインコードセグメントをロードするためと、スタブ実装オブジェクトを提供するためにインターフェースクラスのスタブ実装をインスタンス化するためであって、インターフェースクラスのスタブ実装は、実装ポインタをスタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含む、ためと、インターフェースクラスのリアル実装を含むダイナミックライブラリをロードするためと、リアル実装オブジェクトを提供するためにインターフェースクラスのリアル実装をインスタンス化するためであって、インターフェースクラスのリアル実装は、実装ポインタをリアル実装オブジェクトに定めるように設定された第2のコンストラクタを含む、ための、1つ又は2つ以上の命令を含むことができる。1つ又は2つ以上の命令は、例えば、コンピュータ実行可能命令及び/又は論理的実装命令とすることができる。一実装形態では、信号保持媒体302は、コンピュータ可読媒体306を含むことができる。一実装形態では、信号保持媒体302は、追記型媒体308を含むことができる。一実施形態では、信号保持媒体302は、通信媒体310を含むことができる。
図4は、実施形態を実装可能な代表的なシステム400を示している。システム400は、コンピューティングシステム環境を含む。システム400には、デバイス404を使用するユーザ412も図示され、該ユーザは、随意の接続406によってコンピューティングデバイス402と通信するものとして随意に示されている。随意の接続406は、ローカルネットワーク、広域ネットワーク、又はピアツーピアネットワークとして実現しても良いし、あるいは(例えば、コンピューティングデバイス402の全部又は一部がデバイス404に内包される代表的実地形態では)コンピューティングデバイス内部のバスであっても差し支えない。記憶媒体408は、任意のコンピュータ記憶媒体が該当する。
コンピューティングデバイス402は、コンピューティングデバイス402上で実行されたときにコンピューティングデバイス402に、実装ポインタを有する静的メンバを含むインターフェースクラスを定義させるためと、インターフェースクラスのスタブ実装を含むメインコードセグメントをロードさせるためと、スタブ実装オブジェクトを提供するためにインターフェースクラスのスタブ実装をインスタンス化させるためであって、インターフェースクラスのスタブ実装は、実装ポインタをスタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含む、ためと、インターフェースクラスのリアル実装を含むダイナミックライブラリをロードさせるためと、リアル実装オブジェクトを提供するためにインターフェースクラスのリアル実装をインスタンス化させるためであって、インターフェースクラスのリアル実装は、実装ポインタをリアル実装オブジェクトに定めるように設定された第2のコンストラクタを含む、ための、コンピュータ実行可能命令410を含む。上述され、図4に示されるように、実施例によっては、コンピューティングデバイス402は、その全部又は一部をデバイス404内に随意に内包することができる。
図4では、したがって、システム400は、少なくとも1つのコンピューティングデバイス(例えば402及び/又は404)を含む。コンピュータ実行可能命令410は、1つ又は2つ以上の上記少なくとも1つのコンピューティングデバイス上で実行することができる。例えば、コンピューティングデバイス402は、コンピュータ実行可能命令410を実装し、コンピューティングデバイス404に結果を出力(尚且つ/又はコンピューティングデバイス404からデータを受信)することができる。コンピューティングデバイス402は、その全部又は一部をコンピューティングデバイス404内に内包されえるので、デバイス404もまた、例えば本明細書に記載された様々な技術又はその他の技術を実施又は実装させられるように、コンピュータ実行可能命令410の一部又は全部を実行するものと称することができる。
デバイス404は、例えば、携帯型コンピューティングデバイス、ワークステーション、又はデスクトップ型コンピューティングデバイスを含むことができる。別の代表的実施形態では、コンピューティングデバイス402は、データアクセス及びデータ処理を実施するためのユーザ412からの入力に関する情報を受信し、ダイナミックライブラリを有する簡略化されたインターフェースの出力をユーザデータに少なくとも部分的に基づいて提示するために、ユーザ412に関連付けられたデバイス404と通信するように動作可能である。
本開示では、開示された方法は、デバイスによって読み取り可能な命令セット又はソフトウェアとして実装することができる。更に、開示された方法における段階間の具体的順序又は序列は、代表的アプローチの例に過ぎないことが理解される。方法における段階間の具体的順序又は序列は、開示された内容の範囲内で、設計上の好みに基づいて並べ替え可能である。添付の方法クレームは、各段階の要素を1つの順序例で提示したものであり、提示された具体的な順序又は序列に必ずしも限定されることを意図していない。
以上の説明によって、本開示及びそれに付随する多くの利点が理解されると考えられ、開示された内容から逸脱することなく又はその重要な利点のいずれも犠牲にすることなく形態、構成、及び配置に対して様々な変更が可能であることは明らかである。説明された形態は、説明的なものに過ぎず、以下のクレームの意図は、このような変更を包含して含むことにある。

Claims (20)

  1. 実装ポインタを有する静的メンバを含むインターフェースクラスを定義し、
    前記インターフェースクラスのスタブ実装を含むメインコードセグメントをロードし、
    スタブ実装オブジェクトを提供するために前記インターフェースクラスの前記スタブ実装をインスタンス化する処理であって、前記インターフェースクラスの前記スタブ実装は、前記実装ポインタを前記スタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含み、
    前記インターフェースクラスのリアル実装を含むダイナミックライブラリをロードし、
    リアル実装オブジェクトを提供するために前記インターフェースクラスの前記リアル実装をインスタンス化する処理であって、前記インターフェースクラスの前記リアル実装は、前記実装ポインタを前記リアル実装オブジェクトに定めるように設定された第2のコンストラクタを含む
    方法。
  2. 請求項1記載の方法であって、更に、
    前記実装ポインタが前記スタブ実装オブジェクトに定められている間に前記実装ポインタのコピーを格納する方法。
  3. 請求項2記載の方法であって、更に、
    前記ダイナミックライブラリと前記インターフェースクラスの前記リアル実装とをアンロードする方法。
  4. 請求項3記載の方法であって、更に、
    前記実装ポインタを前記格納された実装ポインタのコピーに定める方法。
  5. 前記インターフェースクラスは、エンハンスドシングルトンインターフェースクラスである請求項1記載の方法。
  6. 前記エンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスを含む請求項5記載の方法。
  7. 前記スタブ実装は、第1のポインタアレイを含み、前記リアル実装は、第2のポインタアレイを含む請求項1記載の方法。
  8. コンピュータにより実行されるプログラムであって、
    信号保持媒体に記録され、
    装ポインタを有する静的メンバを含むインターフェースクラスを定義するための1つ又は2つ以上の命令と、
    前記インターフェースクラスのスタブ実装を含むメインコードセグメントをロードするための1つ又は2つ以上の命令と、
    スタブ実装オブジェクトを提供するために前記インターフェースクラスの前記スタブ実装をインスタンス化するための1つ又は2つ以上の命令であって、前記インターフェースクラスの前記スタブ実装は、前記実装ポインタを前記スタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含む、命令と、
    前記インターフェースクラスのリアル実装を含むダイナミックライブラリをロードするための1つ又は2つ以上の命令と、
    リアル実装オブジェクトを提供するために前記インターフェースクラスの前記リアル実装をインスタンス化するための1つ又は2つ以上の命令であって、前記インターフェースクラスの前記リアル実装は、前記実装ポインタを前記リアル実装オブジェクトに定めるように設定された第2のコンストラクタを含む、命令と、
    を備えたコンピュータプログラム。
  9. 請求項8記載のコンピュータプログラムであって、更に、
    前記実装ポインタが前記スタブ実装オブジェクトに定められている間に前記実装ポインタのコピーを格納するための1つ又は2つ以上の命令を備えるコンピュータプログラム。
  10. 請求項9記載のコンピュータプログラムであって、更に、
    前記ダイナミックライブラリと前記インターフェースクラスの前記リアル実装とをアンロードするための1つ又は2つ以上の命令を備えるコンピュータプログラム。
  11. 請求項10記載のコンピュータプログラムであって、更に、
    前記実装ポインタを前記格納された実装ポインタのコピーに定めるための1つ又は2つ以上の命令を備えるコンピュータプログラム。
  12. 請求項8記載のコンピュータプログラムであって、
    前記インターフェースクラスは、エンハンスドシングルトンインターフェースクラスである、コンピュータプログラム。
  13. 請求項12記載のコンピュータプログラムであって、
    前記エンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスを含む、コンピュータプログラム。
  14. 請求項8記載のコンピュータプログラムであって、
    前記スタブ実装は、第1のポインタアレイを含み、前記リアル実装は、第2のポインタアレイを含むコンピュータプログラム。
  15. システムであって、
    コンピューティングデバイスと、前記コンピューティングデバイス上で実行されるプログラムとを備え、
    前記プログラムは、前記コンピューティングデバイスに、
    実装ポインタを有する静的メンバを含むインターフェースクラスを定義させ、
    前記インターフェースクラスのスタブ実装を含むメインコードセグメントをロードさせ、
    スタブ実装オブジェクトを提供するために前記インターフェースクラスの前記スタブ実装をインスタンス化させるためであって、前記インターフェースクラスの前記スタブ実装は、前記実装ポインタを前記スタブ実装オブジェクトに定めるように設定された第1のコンストラクタを含ませ、
    前記インターフェースクラスのリアル実装を含むダイナミックライブラリをロードさせ、
    リアル実装オブジェクトを提供するために前記インターフェースクラスの前記リアル実装をインスタンス化させるためであって、前記インターフェースクラスの前記リアル実装は、前記実装ポインタを前記リアル実装オブジェクトに定めるように設定された第2のコンストラクタを含ませる
    システム。
  16. 請求項15記載のシステムであって、前記プログラムは、
    前記コンピューティングデバイス上で実行されたときに前記コンピューティングデバイスに、前記実装ポインタが前記スタブ実装オブジェクトに定められている間に前記実装ポインタのコピーを格納させるための、1つ又は2つ以上の命令を含むシステム。
  17. 請求項16記載のシステムであって、更に、前記プログラムは、
    前記コンピューティングデバイス上で実行されたときに前記コンピューティングデバイスに、前記ダイナミックライブラリと前記インターフェースクラスの前記リアル実装とをアンロードさせるための、1つ又は2つ以上の命令を含むシステム。
  18. 請求項17記載のシステムであって、前記プログラムは、
    前記コンピューティングデバイス上で実行されたときに前記コンピューティングデバイスに、前記実装ポインタを前記格納された実装ポインタのコピーに定めさせるための、1つ又は2つ以上の命令を含むシステム。
  19. 前記インターフェースクラスは、エンハンスドシングルトンインターフェースクラスを含む請求項15記載のシステム。
  20. 前記エンハンスドシングルトンインターフェースクラスは、アブストラクトC++シングルトンインターフェースクラスである請求項19記載のシステム。
JP2009279266A 2009-04-03 2009-12-09 ダイナミックライブラリを有するインターフェースを単純化するための方法 Expired - Fee Related JP5425605B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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