64bit Project with Visual C++ 2008 Express Edition SP1

無事、Windows7 のインストールと環境移行も完全に済み、ようやく64bitデビューできました(^^;;;

64bit版だからといって、特に変わったこともなく、フツーに使えてます。ただ、メモリ食いますね・・・。32bit版だと、タスクマネージャで確認すると起動時で600~800MBぐらいのメモリ消費。64bit版だと、この倍の1.1~1.3GBぐらいになります。まぁ・・・64bitなんだからしょうがないね・・・と自分で自分を納得させています(笑)

で、次は、ツール類のビルド環境です。自作のツールがチョコチョコとあるので、これも一気に64bitネイティブバイナリにしたい!っていうのは当然の欲求じゃないでしょうか(^^;;;

しかしながら・・・無料バージョンのVisual C++ 2008 Express Edtionでは、64bitの開発はサポート外になっています。別途、Windows SDK (Windows7,Server2008,Server2003,XPに対応したv7バージョン)を追加インストールすると、コマンドラインからの64ビット開発はできるものの、やはりVisual StudioのIDEで楽をしたいというものです。が、実際、IDEからは64bitのプロジェクトは構成できません。これは、Standardエディションを買えと、いうことですかね・・・。まぁ、そりゃそうだ。

でも、実は・・・サポート外、というだけで、少しの修正で64bitのプロジェクトが作成できるようです。

Visual C++ 2008 Express Edition And 64-Bit Targets
http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/

やはりすでにやられている方がいますね。上記アドレスから、VCE64BIT.zip をダウンロードして、バッチファイルを実行すると64bitを構成することが可能になります。ありがたい。。。
(WindowsSDKインストーラのバグに対応した、VCE64BIT_WIN7SDK.zip ってファイルに更新されていました。VCE64BIT.zipをダウンロードして実行しても適用されないようです。ご注意を。 追記:2010/3/27)

ただ、上記アドレスの内容を読むと、おそらくSP1以前の内容じゃないかと・・・。僕の環境とはちょっと違っていたので、ダウンロードしたファイルのバッチファイルを修正して使用させてもらいました。

具体的には、VCProjectAMD64Platform.dllとVCProjectIA64Platform.dllがC:Program Files (x86)Microsoft Visual Studio 9.0VCvcpackagesディレクトリにコピーされないようにしました。僕の環境では、すでに上記二つファイルは、32bit版のものがインストールされていたので・・・。

上記内容をよく読むと、VC++2008expressって、64bit Windows上でも64bitのコンパイラではなく、32bitのクロスコンパイラが使われるようですね・・・。

次期バージョンのVisual Studio 2010では、64bitに完全対応してくれるのかな???

ということで?、無事、IDEから64bit プロジェクトが構成されました(^^)

VC++ 2008 Express Edition

補足

新たにプロジェクトを作成しても、デフォルトではソリューションプラットフォームにx64(or Itanium)の選択肢は表示されません。
まぁ、当たり前だと思いますが・・・。プラットフォームにx64 or Itanium を追加するには、一手間かける必要があります。

構成マネージャのダイアログを表示させ、アクティブソリューションプラットフォームから”新規作成”を選択すると、Itaniumとx64が現れますので、x64を追加する必要があります。

新規作成

それと、当然ですが、Windows SDK v7をインストールする必要があります。言わずもがなですけど・・・。