連載
.NET&Windows Vistaへ広がるDirectXの世界

第4回 XNA Game Studio Expressを触ってみよう!

NyaRuRu
Microsoft MVP Windows - DirectX(Jan 2004 - Dec 2006)
2006/11/01
Page1 Page2 Page3 Page4

【コラム】VC# Expressで出力アセンブリのプラットフォームを設定する

 現在のMDXやXNAのアセンブリはx86版(32-bit版)のみが提供されており、x64版(64-bit版)は提供されていない。そのため、Windows x64環境で問題になることがある。

 VC# Expressは、デフォルトで「Any CPU(任意のCPU)」のアセンブリを出力するが、これをx64環境で実行すると、OSのローダーは64-bitプロセスとして起動してしまう。しかし一度64-bitプロセスとして起動してしまうと、もはや32-bit用のDLLはロードできないため、MDXやXNAのアセンブリが遅延ロードされた段階でBadImageExceptionが発生してしまうのだ。

 この問題を回避するためには、生成される.EXEファイルのヘッダにx86用(32-bit用)のマークをつける必要がある。しかし、VC# ExpressのIDEでは、デフォルトでこの設定ができなくなっている(具体的には、メニューバーの[ビルド]−[構成マネージャ]が表示されず、さらには[標準]ツールバー上のビルド構成に関するコンボボックスがグレーアウトしている)。そこでこの設定項目を有効化する方法を説明しよう。

 まずメニューバーから[ツール]−[オプション]を選択することで、ビルド構成を設定できるようにする。VC# Expressは、デフォルト状態で自動的にデバッグ・ビルドとリリース・ビルドの使い分けを行ってくれているが、以下の設定を行うことで、従来のVisual Studioや、上位エディションと同様にビルド構成を手動で選択できるようになる。

VC# Expressのオプション
メニューバーから[ツール]−[オプション]を選択して、[オプション]ダイアログを表示したところ。
  [すべての設定を表示]をチェックすることで、隠されていた設定項目が表示されるようになる。
  [プロジェクトおよびソリューション]を選択する。
  [ビルド構成の詳細を表示]をチェックすることで、グレーアウトしていたビルド構成の選択ができるようになる。

 次に、メニューバーから[ビルド]−[構成マネージャ]を選択し、x86 CPU向けの構成を作成する。

構成マネージャにおけるx86向けソリューション構成の作成
メニューバーから[ビルド]−[構成マネージャ]を選択し、x86 CPU向けの構成を作成する。
  [アクティブ ソリューション プラットフォーム]コンボボックスから「<新規作成...>」を選択する。
  [新しいソリューション プラットフォーム]ダイアログが表示されるので、新しいプラットフォームとして「x86」を選択する。

 これで、x86環境向けのアセンブリを生成できるようになった。XNAアプリケーションを作成するときは、次の図のように「x86」がターゲットとして選択されていることを確認してビルドする。

有効化されたビルド構成設定
[標準]ツールバー上のビルド構成に関するコンボボックスが有効かされ、ビルド構成を簡単に切り替えられる。
  ビルド構成(Debug/Release)とターゲット・プラットフォーム(x86/Any CPU)を選択する。ここで選択した設定でビルドされる。

3. 終わりに

 今回は、XNAプログラミングの初歩について紹介を行ってみたが、いかがだったであろうか。サンプル・コードは非常に簡単なものを選んだつもりなので、難しいことを抜きにして取りあえず始めてみたいという方はぜひトライしてみていただきたい。これを機会にプログラミングを始めてみたいという方も、いまでは業務アプリケーションの開発ばかりだけど再びゲーム・プログラミングに興味を持ったという方も、楽しいプログラミング体験ができることを願っている。

 また、与えられたとおりの使い方に縛られない遊び心を大事にして、XNAについても縦に読んだり斜めに読んだりいろいろな角度から眺めてみてほしいと思っている。確かに、XNA Game Studio Expressベータ版はVC# Expressしか「サポート」していないが、IDEサポートがないだけで、IronPythonからXNA Frameworkが使えないわけではない。あるものは利用する、ないものは作るの精神で、XNAを盛り上げていけたらいいと思っている。

 次回は、恐らく公開されているであろうベータ2について紹介すると共に、XNAを用いたDirectX開発についてより詳しく見ていきたい。特に、ガベージ・コレクションとのかかわりと、プログラマブル・シェーダによる積極的なGPUの活用という2点を取り上げるつもりだ。End of Article


 INDEX
  .NET&Windows Vistaへ広がるDirectXの世界
  第4回 XNA Game Studio Expressを触ってみよう!
    1.XNA Game Studio Expressベータ版のインストール
    2.【コラム】DirectX SDKのインストールとデバッグへの応用
    3.XNA Game Studio Expressベータ版を使ってみよう
  4.【コラム】VC# Expressで出力アセンブリのプラットフォームを設定する
 
インデックス・ページヘ  「.NET&Windows Vistaへ広がるDirectXの世界」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH