Share via


TilePuzzle サンプル : C# と C++ の間の相互運用性の例

更新 : 2007 年 11 月

TilePuzzle サンプルでは、主な Visual C++ 機能の例を示します。

  • サンプルは、C++、C#、COM 関連の新しい属性など、いくつかの新しいテクノロジを使用して実装されたコンポーネントで構成されています。

  • サンプルでは、C++ および C# で記述されたマネージ コンポーネントと、COM 属性を使用して C++ で記述されたネイティブ コンポーネントとの間の相互運用性を示します。

このサンプルは、タイル パズルという基本的なパズル ゲームを実装します。サンプルは、ビットマップを読み込み、ユーザーによって指定された任意の数のタイルに分け、ランダムな位置に配置します。ユーザーは、タイルを動かすことによってパズルを解いて元の絵に戻します。サンプルには、これらの機能に加えて、C++ および .NET Framework クラスで記述されたヒューリスティックな検索アルゴリズムを使用してパズルを解く機能もあります。

セキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

Visual Studio で TilePuzzle をビルドして実行するには

  1. Visual Studio IDE で、PUZZLE.sln ソリューション ファイルを読み込みます。

  2. ソリューション エクスプローラで、[PUZZLE] ソリューションを右クリックします。

  3. ショートカット メニューの [ソリューションのビルド] をクリックします。

  4. [デバッグ] メニューの [開始] をクリックします。

プロジェクトが正しくビルドされたら、パズルを解いてみてください。

サンプルのアーキテクチャ

基本アーキテクチャは、次のとおりです。

タイル パズル アーキテクチャ グラフィック

メモ :

ゲームの保存および読み込みの機能は実装されていません。

このサンプルは、マネージ .NET Framework オブジェクトからネイティブ COM コンポーネントにアクセスするために、TLBIMP.EXE を使って .NET Framework プロキシ dll を作成します。

クラス

このサンプルでは次のクラスを使用します。

  • System.Windows.Forms.Form - PUZZLE プロジェクトで使用される AboutForm オブジェクトを実装します。

  • System.Object - PUZZLE プロジェクトで使用される GameLevelEnum オブジェクトを実装します。

  • System.Delegate - PUZZLE プロジェクトで使用される SolveThreadProcDlg オブジェクトを実装します。

参照

参照

String

Array

gcnew

Classes and Structs (Managed)

Assert

Int32

その他の技術情報

相互運用性のサンプル