2007 年 9 月 9 日 23 時 57 分

ホストの作成 #8: 動作テスト


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


[写真]


描画コードとの連携も完成したので、
ちゃんと動作するかテストしてみる。

実行してみると、画面の中央に、
「Hello World!」と表示されたことが確認できた。

……これだけだと短すぎるので、もう少し書くか。

このスクリーンセーバーの実行は
C++ ネイティブアプリと違い、起動に多少時間がかかる。

これは、C++/CLI で書いたプログラムは、
C++ のネイティブプログラムではなく、
CLR で実行されるアセンブリとなるからだ。

C++ 言語を使って開発を行っているため、
一見、原則 C++ コードのプログラムであり、
必要な部分だけ CLI オブジェクト呼び出しているようだが、
実際は、殆どのコードは機械語ではなく、
CLI 準拠の CIL (MSIL) としてコンパイルされている。

どうしても CIL で取り扱えない場合や、
#pragma unmanaged 等で指示がある場合に限り、
C++ ネイティブコードとして機械語化されるが、
それは、P/Invoke と似たような手法で、
CLR から呼び出されているのである。

そのため、C++/CLI のプログラムは、
起動の時点で CLR を必要とするので、
他の CLI プログラムと同じように時間がかかるのだ。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.