(57)【要約】【課題】グリッド画面部品を呼び出す方法を提供する。【解決手段】グリッド画面部品を呼び出す方法は、Ｗｉｎｄｏｗｓ１０環境においてＣ＃側にて、Ｃ＋＋からＣＯＭ参照可能なグリッド画面部品を含むＣＯＭコンポーネントとタイプライブラリを作成するＣＯＭコンポーネント作成工程と、ＣＯＭコンポーネントをＯＳに登録するＣＯＭコンポーネント登録工程と、Ｃ＋＋側から、タイプライブラリを元にグリッド画面部品のラッパークラスを自動生成させるＭＦＣ側準備工程と、Ｃ＋＋からグリッド画面部品を呼び出すグリッド画面部品呼び出し工程とを有する。【選択図】図２
2020135338.tif 000002
【特許請求の範囲】
【請求項１】
グリッド画面部品を呼び出す方法であって、
Ｗｉｎｄｏｗｓ１０環境においてＣ＃側にて、Ｃ＋＋からＣＯＭ参照可能な前記グリッド画面部品を含むＣＯＭコンポーネントとタイプライブラリを作成するＣＯＭコンポーネント作成工程と、
前記ＣＯＭコンポーネントをＯＳに登録するＣＯＭコンポーネント登録工程と、
前記Ｃ＋＋側から、前記タイプライブラリを元に前記グリッド画面部品のラッパークラスを自動生成させるＭＦＣ側準備工程と、
前記Ｃ＋＋から前記グリッド画面部品を呼び出すグリッド画面部品呼び出し工程とを有する、Ｗｉｎｄｏｗｓ１０環境においてＣ＋＋からＣ＃製のグリッド画面部品を呼び出す方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、グリッド画面部品を呼び出す方法に関するものである。
【背景技術】
【０００２】
従来、ＣＯＭ（Ｃｏｍｐｏｎｅｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）を用いた技術として、ＣＯＭオブジェクトに与えるデータ処理方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−８９９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
Ｗｉｎｄｏｗｓ１０（登録商標）のアプリケーション開発環境において、従来のＷｉｎｄｏｗｓではサポートされていたグリッド画面部品について、Ｃ＋＋のサポートがなくなり、Ｃ＃のみのサポートとなった。
【０００５】
これにより、従来のＣ＋＋製のアプリケーションをＷｉｎｄｏｗｓ１０の環境下で改訂しようとすると、Ｃ＃製のグリッド画面部品を使用したい場合は、言語を統一するためにアプリケーションのＣ＋＋のソースコードを全てＣ＃で作り直す必要があり、開発コスト及び開発期間が膨大となるという課題があった。
【０００６】
本願は、上記のような課題を解決するための技術を開示するものであり、過去の資産であるアプリケーションを一から作り直さなくて済み、コスト・開発期間を大幅に削減できる、Ｗｉｎｄｏｗｓ１０環境においてＣ＋＋からＣ＃製のグリッド画面部品を呼び出す方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に開示されるグリッド画面部品を呼び出す方法は、
グリッド画面部品を呼び出す方法であって、
Ｗｉｎｄｏｗｓ１０環境においてＣ＃側にて、Ｃ＋＋からＣＯＭ参照可能な前記グリッド画面部品を含むＣＯＭコンポーネントとタイプライブラリを作成するＣＯＭコンポーネント作成工程と、
前記ＣＯＭコンポーネントをＯＳに登録するＣＯＭコンポーネント登録工程と、
前記Ｃ＋＋側から、前記タイプライブラリを元に前記グリッド画面部品のラッパークラスを自動生成させるＭＦＣ側準備工程と、
前記Ｃ＋＋から前記グリッド画面部品を呼び出すグリッド画面部品呼び出し工程とを有する、Ｗｉｎｄｏｗｓ１０環境においてＣ＋＋からＣ＃製のグリッド画面部品を呼び出すものである。
【発明の効果】
【０００８】
本願に開示されるグリッド画面部品を呼び出す方法によれば、Ｗｉｎｄｏｗｓ１０環境においてＣ＋＋からＣ＃製のグリッド画面部品を使用することが可能となり、アプリケーション全てをＣ＃で作り直さなくて済み、大幅に開発コスト及び開発時間を削減できる。
【図面の簡単な説明】
【０００９】
【図１】比較例のアプリケーションの改訂前後の構成を示す図である。
【図２】本願のアプリケーションの改訂前後の構成を示す図である。
【図３】実施の形態１によるＰＣの画面を示す図である。
【図４】実施の形態１によるＣ＋＋からＣ＃で作成されたグリッド画面部品を呼び出すための手順を示すフロー図である。
【図５】実施の形態１によるＣ＃の新しい項目の追加画面である。
【図６】実施の形態１によるＣ＃のビルド設定の画面である。
【図７】実施の形態１によるＣＯＭ公開するメソッドのインターフェースの作成例である。
【図８】実施の形態１によるＣＯＭ公開するイベントのインターフェースの作成例である。
【図９】実施の形態１によるＣ＃のグリッド画面部品のコントロールの作成例である。
【図１０】実施の形態１によるＣ＋＋の新しい項目の追加画面である。
【図１１】実施の形態１によるＣ＋＋のＡｃｔｉｖｅＸコントロールクラス追加ウィザードのメインメニューである。
【図１２】実施の形態１による自動生成されたラッパークラスを示す図である。
【図１３】実施の形態１によるリソースファイルの書き換えを説明する図である。
【図１４】実施の形態１によるＣ＋＋のヘッダーファイルに追加する内容である。
【図１５】Ｃ＋＋のソースファイルに追加する内容である。
【図１６】Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ  Ｃ＋＋  ＭＦＣ（Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ  （登録商標））から、ＣＯＭインターフェース経由でＣ＃製のグリッド画面部品を呼び出す状態を示す概念図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、比較例のアプリケーションの改訂前後の構成を示す図である。
ここで、Ｗｉｎｄｏｗｓ７（登録商標）の環境下で動作する、Ｃ＋＋製のグリッド画面部品を使用するＣ＋＋製のアプリケーション（図上側）を、Ｗｉｎｄｏｗｓ１０環境下で改訂する場合を想定する。Ｗｉｎｄｏｗｓ１０の環境下ではグリッド画面部品について、Ｃ＋＋のサポートがなくなり、Ｃ＃のみのサポートとなっている。そうするとＣ＃のグリッド画面部品を使う必要が生じる。Ｃ＃製のグリッド画面部品を使うとすれば、アプリケーション本体をＣ＃に書き換える必要が生じて多大な労力とコストが必要となる（図１、下側）。
【００１１】
図２は、本願のアプリケーションの改訂前後の構成を示す図である。
本願では、図２に示すように、改訂前のＣ＋＋製のアプリケーション部分に多大な変更を加えることなく、Ｃ＃製のグリッド画面部品を使用する方法を提案する。
【００１２】
以下、実施の形態１による、グリッド画面部品を呼び出す方法を、図に基づいて説明する。
図３は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）としてＷｉｎｄｏｗｓ１０を使用するＰＣ１００（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上で、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ  Ｃ＋＋（登録商標）で作成したアプリケーションを実行しているときの画面１０を示す図である。
【００１３】
フレーム１１が囲む部分はＣ＋＋で作成されている部分であり、フレーム１２が囲む部分が、Ｃ＃のグリッド画面部品を用いて作製されている部分である。図に示すように、ＰＣ１００では、Ｃ＋＋で作成されたプログラムから、Ｃ＃で作成されたグリッド画面部品を呼び出している。ＰＣ１００は、外部の制御装置３とネットワーク４で結ばれている。
【００１４】
Ｃ＋＋で作成されたアプリケーションからの、Ｃ＃で作成された画面部品の呼び出しは、マイクロソフト社が提唱するＣＯＭを活用することによって実現する。ＣＯＭインターフェースを利用することにより言語、環境にとらわれずにプログラムを利用できるようにする。以下、具体的な手順に付いて説明する。
【００１５】
まず、Ｃ＃側の事前準備について説明する。
図４は、Ｃ＋＋からＣ＃で作成されたグリッド画面部品を呼び出すための手順を示すフロー図である。
図５は、Ｃ＃の新しい項目の追加画面である。
図６は、Ｃ＃のビルド設定の画面である。
【００１６】
まず、Ｃ＃（．Ｎｅｔ  Ｆｒａｍｅｗｏｒｋ（登録商標））側にて、Ｃ＋＋からＣＯＭ参照（ＣＯＭを介して呼び出すこと）可能なグリッド画面部品を含むクラスライブラリ（ＣＯＭ  コンポーネント）を作成する（ＳＴ１：ＣＯＭコンポーネント作成工程）。
図５に示すように、新しい項目の追加の画面から「アセンブリをＣＯＭ参照可能にする」にチェックを入れる。なお、図６に示すように、ビルド設定の画面から「ＣＯＭ相互運用機能の登録」の欄にチェックを入れておく。
【００１７】
図７は、ＣＯＭ公開するメソッドのインターフェースの作成例である。
図８は、ＣＯＭ公開するイベントのインターフェースの作成例である。
図９は、Ｃ＃のグリッド画面部品のコントロールの作成例である。
図７に示すように、まず、ＣＯＭ公開するメソッドのインターフェースを作成する。
ＩｎｔｅｒｆａｃｅＴｙｐｅの属性は、ＩｎｔｅｒｆａｃｅＩｓＩＤｉｓｐａｔｃｈを設定する。
【００１８】
また、Ｇｕｉｄ（Ｇｌｏｂａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）を指定しておく。また、ここでは、公開メソッドが、Ｉｎｉｔｉａｌｉｚｅ（）であることを定義している。
【００１９】
次に、図８に示すようにＣＯＭ公開するイベントのインターフェースを作成する。
ＩｎｔｅｒｆａｃｅＴｙｐｅの属性は、ＩｎｔｅｒｆａｃｅＩｓＩＤｉｓｐａｔｃｈを設定する。また、Ｇｕｉｄ及びイベントのＤｉｓｐａｔｃｈＩＤを指定する。
【００２０】
次に、Ｃ＃のグリッド画面部品をユーザコントロールに配置し、グリッドのコントロールを作成する。グリッドのコントロールは、ユーザコントロールを継承する。また、インターフェースは、上記メソッドのインターフェースであるＩＤａｔａＧｒｉｄＣｏｎｔｒｏｌを継承する。イベントの定義は、先述のイベントのインターフェースで定義した名前と同一にする。イベントの定義に続けて、先述のメソッドのインターフェースの作成で定義したメソッドと同一名称のメソッドを実装する。
【００２１】
このようにして、外部から呼び出せるＣＯＭインターフェース対応のメソッド群をビルドしたＣＯＭコンポーネントであるＤＬＬファイルと、タイプライブラリとを作成した後、ＤＬＬファイルをＯＳに登録する（ＳＴ２：ＣＯＭコンポーネント登録工程）。Ｗｉｎｄｏｗｓ１０へのＤＬＬファイルの登録には、アセンブリ登録ツールであるＲｅｇＡｓｍ．ｅｘｅ（Ｃ：￥Ｗｉｎｄｏｗｓ￥Ｍｉｃｒｏｓｏｆｔ．Ｎｅｔ￥Ｆｒａｍｅｗｏｒｋ￥［ｖｅｒｓｉｏｎ］以下）を使用する。
＞  ＲｅｇＡｓｍ．ｅｘｅ  ／ｃｏｄｅｂａｓｅ  ［ｘｘｘ］．ｄｌｌ
なお、ｃｏｄｅｂａｓｅには、ファイルパスを記載する。
【００２２】
次に、Ｃ＋＋側の事前準備（ＳＴ３：ＭＦＣ側準備工程）について説明する。
図１０は、Ｃ＋＋の新しい項目の追加画面である。
図１１は、Ｃ＋＋のＡｃｔｉｖｅＸコントロールクラス追加ウィザードのメインメニューである。
まず、図１０に示すＣ＋＋の新しい項目の追加で、「ＭＦＣクラス」を選択し、次に、図１１に示すメインメニューから「ＡｃｔｉｖｅＸコントロールからのＭＦＣクラス」を選択する。
【００２３】
図１１において、クラスの追加元として「ファイル」を選び、位置は、クラスライブラリのビルド時に作成されたタイプライブラリ定義（ＧｒｉｄＣｏｎｔｒｏｌ．ｔｂｌ）を選択する。
【００２４】
図１２は、自動生成されたラッパークラス、ＣＤａｔａＧｒｉｄＣｏｎｔｒｏｌを示す図である。上記グリッド画面部品のラッパークラスは、タイプライブラリを元に自動生成される。
図１３は、リソースファイルの書き換えを説明する図である。
上記手順にて作成したＡｃｔｉｖｅＸコントロールは、そのままではリソースエディタにて画面に貼り付けることができない。そこで、リソースファイル内のコントロールのＧｕｉｄを図１３に示すように、図９のＧｕｉｄと同一になるように手動で書き換える。
【００２５】
次に、イベントの検出について説明する。
図１４は、Ｃ＋＋のヘッダーファイルに追加する内容である。
図１５は、Ｃ＋＋のソースファイルに追加する内容である。
Ｃ＋＋アプリケーションにおけるイベントの検出は、通常のＡｃｔｉｖｅＸコントロールと同様、ＢＥＧＩＮ＿ＥＶＥＮＴＳＩＮＫ＿ＭＡＰを使用できる。
【００２６】
ヘッダーファイルとソースファイルに、図１４、図１５に示す内容を追加するだけでよい。なお、図１５、２行目に示すＯＮ＿ＥＶＥＮＴのＩＤの項目部分には、当該イベントのＤＩＳｐａｃｈＩＤ、ここでは”１”を指定する。
【００２７】
図１６は、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ  Ｃ＋＋  ＭＦＣ（Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ）から、ＣＯＭインターフェース経由でＣ＃製のグリッド画面部品を呼び出す状態を示す概念図である。
以上に説明した手順により、Ｗｉｎｄｏｗｓ１０上で動作するＣ＋＋ではサポートされていないＣ＃製のグリッド画面部品を、ＣＯＭインターフェースを経由して、ユーザコントロールとして呼び出せるようになる（ＳＴ４：Ｃ＃製グリッド画面部品呼び出し工程）。
【００２８】
実施の形態１によるグリッド画面部品を呼び出す方法によれば、Ｗｉｎｄｏｕｗｓ１０環境においてＣ＋＋からＣ＃製のグリッド画面部品を使用することが可能となり、アプリケーション全てをＣ＃で作り直さなくて済み、大幅に開発コスト及び開発時間を削減できる。
【００２９】
本願は、例示的な実施の形態が記載されているが、実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願に開示される技術の範囲内において想定される。例えば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合が含まれるものとする。
【符号の説明】
【００３０】
１００  ＰＣ、３  制御装置、４  ネットワーク、１０  画面、１１  フレーム、
１２  フレーム。
【図１】
2020135338.tif 000003
【図２】
2020135338.tif 000004
【図３】
2020135338.tif 000005
【図４】
2020135338.tif 000006
【図５】
2020135338.tif 000007
【図６】
2020135338.tif 000008
【図７】
2020135338.tif 000009
【図８】
2020135338.tif 000010
【図９】
2020135338.tif 000011
【図１０】
2020135338.tif 000012
【図１１】
2020135338.tif 000013
【図１２】
2020135338.tif 000014
【図１３】
2020135338.tif 000015
【図１４】
2020135338.tif 000016
【図１５】
2020135338.tif 000017
【図１６】
2020135338.tif 000018