システム開発ブログ/ 事業開拓部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

64bit環境で動作するソフトウェアをつくるには

ロボット池田
ロボット池田 (2009年12月 7日 17:04)
.NET / 事業開拓部

Windows7が発売となり、しばらく経ちましたが、
Windows7を64bitで使用している人が多いそうです。

PCのメモリも非常に安くなり、4GB以上のメモリを搭載する人も、
少なくはないため、今後さらに64bit環境のユーザは増えると予想されます。

64bit環境が増えるにつれて、過去に作られた32bitアプリケーションが、
動かない場合があります。
この問題を解消するためにWindows7の64bit版では、
WOW64(Windows-On-Windows64)という32bit環境のエミュレーションが用意されています。

既存のアプリケーションはこのWOW64によって、
Windows7の64bit環境においても、動作することが多いのですが、
.NETプログラム開発者は1点気を付ける必要があります。

コンソールアプリケーションなど、実行ファイル形式のアプリケーションを提供する際には、
ビルドという作業を行って、EXE形式のファイルを作ります。
この際に、プラットフォームを選ぶことが出来るのですが、
標準では「AnyCPU」という設定になっています。

AnyCPUという設定は、64bit環境では64bitアプリケーションとして、
32bit環境では32bitアプリケーションとして動作することを意味しています。
このため、32bit環境しか想定していないコードの状態で、
AnyCPUでビルドを行ったファイルを64bit環境で使用してしまうと、
64bitアプリケーションとして動作させてしまい、思わぬエラーが発生してしまいます。

WOW64で橋渡しをしてもらい、32bitアプリケーションとして動作させるには、
プラットフォームの選択を「x86」という設定に変更する必要があります。
x86と明示して設定を行うことで、そのプログラムは32bitアプリケーションとして固定され、
64bit環境ではWOW64のエミュレーション動作を行う事が出来ます。

[参考]
.NETアプリケーションのプラットフォーム設定は、以下の動作をするようになっています。

・x86:32bitのx86互換共通言語ランタイムで動作し、64bitではWOW64を介して32bit動作する。
・x64:AMD64 または EM64T 命令セットを使用した、64bitアプリケーションとして動作する。
・AnyCPU:実行環境のプラットフォームに準じた動作を行う。
※情報元
http://msdn.microsoft.com/ja-jp/library/zekwfyz4(VS.80).aspx

過去にリリースしたアプリケーションが、64bit環境で動かないといった報告が、
今後増えてくると予想されます。
是非一度、過去のプログラムのプラットフォーム設定を見直してみてはいかがでしょうか。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。