Seaside Laboratory

Posts

Visual Studio Express 2012 をインストール

いつの間にか Visual Studio Express 関連のダウンロード用リンクが無効になっていたので、ファイルが手に入らなくなる前にインストールすることにした。

Visual Studio 関連のファイルは visualstudio.com という専用サイトに集約されたようで、それが理由でリンクが無効になっていた模様。サイトからダウンロードできるのは最新版のみなので、古いバージョンが欲しい場合は Visual Studio Dev Essentials (無料) に参加して、そこからダウンロードする必要がある。

Visual Studio Express 2012 for Windows Desktop

2012 からはファイルが言語別ではなくプラットフォーム別に分かれていて、従来通りのウィンドウズアプリケーションを作る場合は Windows Desktop 版を使用する。

以前公開されていたときはファイル名は VS2012_WDX_JPN.iso だったが、Dev Essentials のものは ja_visual_studio_express_2012_for_windows_desktop_x86_dvd_1002009.iso という、やたらと長いファイル名に変わっている。両ファイルは同一容量だったので内容に違いはなさそう。

ISO イメージなのでマウントした後に wdexpress_full.exe を実行すればインストーラーが起動する。インストール内容を選択するメニューが無くなっているので、ガイドに従ってボタンを押すだけでインストールは完了する。

Visual Studio 2012 Update 5

以前でいうサービスパックに相当するのが Update 5。Windows XP 用のプログラムをビルドするのに必要なファイルはこの中に含まれている。

mu_visual_studio_2012_update_5_x86_dvd_6967467.iso の中にある VS2012.5.exe を実行するとアップデートが行われる。

オンライン登録

Visual Studio Express 2010 を使っていたことが影響しているのか、インストールしただけで何故かオンライン登録済みになっていた。

プロダクトキー登録について調べてみると MSDN のフォーラムに、

VS2012 であれば iso ファイルからインストールするだけで、自動的にライセンス認証されることを確認しました。

iso ファイルにプロダクトキーが含まれないのは VS2013 からみたいです。

と書かれていたので、ISO 版は登録不要で使えるのかもしれない。

DirectX SDK との関係

DirectX SDK が同梱されるようになったので、バージョン依存が強くないプログラムであればそのままコンパイルすることができる。

Windows SDK 7.1 および DirectX SDK June 2010 までは、Windows SDK と DirectX SDK とが別々に提供されてきたが、Windows SDK 8.0 では DirectX SDK と統合された。Visual Studio 2012/2013 には、それぞれ Windows SDK 8.0/8.1 がバンドルされている。

マイクロソフトの人のブログ記事「Whither DirectDraw?」にも書かれているが、DirectDraw に関するファイルは June 2010 で削除されている。

In the DirectX SDK (June 2010) release, the DDRAW.H and DDRAW.LIB files are no longer there. Because we do not officially support Visual Studio 2005 in the June 2010 release, we finally removed the header and import library.

DirectX SDK (June 2010) リリースでは、DDRAW.H と DDRAW.LIB ファイルがなくなりました。June 2010 リリースでは Visual Studio 2005 を正式にサポートしていないため、最終的にヘッダーとインポートライブラリを削除しました。

2012 に入っている Windows SDK 8.0 は June 2010 より後にリリースされたものだが、何故か ddraw.h が含まれている。これに関しては別の記事「DirectX SDKs of a certain age」に書かれている。

While February 2010 DirectX SDK was the last to contain ddraw.h and ddraw.lib, ddraw.h is still available in the Windows SDK 6.0 or later.

DirectX SDK (Feb 2010) は ddraw.h と ddraw.lib を含む最後のバージョンでしたが、ddraw.h は Windows SDK 6.0 以降でも利用可能です。

ただ、ddraw.lib は含まれていないので COM 経由でないと使うことは出来ない。

Windows XP 用の実行ファイル生成

初期設定で生成した実行ファイルは Windows XP での実行がサポートされていない。いつものように「動くかもしれないけど保証はできないよ」という意味かと思っていたが、実際に Windows XP 上で実行すると、

~.exe は有効な Win32 アプリケーションではありません。

というエラーが表示され停止してしまう。

Windows XP 用の実行ファイルを生成するには、プラットフォームツールセットを「Visual Studio 2012 - Windows XP (v110_xp)」にする。このツールセットを選択すると、以下の項目で制限がかかる模様。

  • リモートデバッグ
  • スタティック分析
  • DirectX グラフィックスのデバッグ
  • HLSL のビルド

使ったことがない機能が多いので、特にコメントなし。

初期化されていない可能性のあるローカルポインター変数 '~' が使用されています

2012 から SDL (Security Development Lifecycle) というコンパイラオプションが追加されていて、怪しげなコードを書くと警告されてしまう。

警告されたのは、ポインタの初期化が必ず実行されるロジックではあるものの、ポインタの宣言から初期化までの間 (実行タイミングのことではなくコードの位置) にポインタを参照するコード。

SDL を有効にするとコンパイル時の警告だけでなく、実行時のチェックも行われる。ほんの僅かとはいえ、パフォーマンスに影響する項目がデフォルトで有効なっていることに時代の流れを感じる。