• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:64ビットアプリケーションの配布)

64ビットアプリケーションの配布

このQ&Aのポイント
  • WindowsXP+VisualStudio2008Proを使用してMFCやWIN32SDKプログラムを作成している方へ質問です。64ビットプラットフォームを意識しないで32ビットプラットフォーム向けプログラムを作成してきましたが、今日、Visual Studioで64ビットOS向けのコンパイルができることを知りました。インストーラでプラットフォームを判断して自動的にインストールできる方法や、最近のWindowsの64ビットOSで32ビットアプリケーションが問題なく動作するかどうかなど、皆さんの意見を聞きたいです。
  • 64ビットアプリケーションの配布に関する疑問です。今まで32ビットプラットフォーム向けプログラムを作成してきた方で、今日、Visual Studioで64ビットOS向けのコンパイルができることを知りました。そこで、64ビット版と32ビット版のプログラムを作成した場合、インストーラでプラットフォームを判断し、自動的にインストールする方法はあるのでしょうか?また、最近のWindowsの64ビットOSでは、32ビットアプリケーションも問題なく動くと聞いていますが、一般的なアプリは32ビットでコンパイルしておく方が安全なのでしょうか?皆さんはどのようにしていますか?意見をお聞かせください。
  • 64ビットアプリケーションの配布について質問があります。現在、WindowsXP+VisualStudio2008Proを使用してMFCやWIN32SDKプログラムを作成しています。しかし、今日、Visual Studioで64ビットOS向けのコンパイルができることを知りました。そこで質問なのですが、64ビット版と32ビット版のプログラムを両方作成した場合、インストーラでプラットフォームを判断し、自動的にインストールする方法はあるのでしょうか?それとも、最近のWindowsの64ビットOSでは、32ビットアプリケーションも問題なく動作するため、一般的なアプリは32ビットでコンパイルしておくのが安全なのでしょうか?皆さんの意見をお聞かせください。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.2

> 一般的なアプリは32ビットでコンパイルしとくのが安全なのですか? 64ビットWindows上で32ビットアプリケーションが動作する際は、WOW64という エミュレーション層が間に入ります。 若干のオーバーヘッドが存在するほか、64ビットのOCXコンテナと共存できないなどの 制限があります。 Wikipedia http://ja.wikipedia.org/wiki/WOW64 つまり、64ビット用をあえて別に作って配布するメリットとしては、この WOW64のオーバーヘッドを防げることが挙げられます。 逆にデメリットとして、64ビットへ移植したため発生するバグの修正などが あるかもしれません。 (例:64bitのポインタを32bitのintにキャスト、等) 自動判別についてはインストーラ次第だと思いますが、試しにNSISで調べたところ できるみたいですよ(実装中かも)。 http://public.kitware.com/Bug/view.php?id=9094

ken2r
質問者

お礼

WOW64など勉強になりました。 ご回答有難うございました。

その他の回答 (1)

  • sygh
  • ベストアンサー率76% (42/55)
回答No.1

ソフトウェアの有償・無償を問わず、32bitと64bitのインストーラ(exe/msi)は別々に提供されることが多いので、自動的にプラットフォームを判定する方法はあまり一般的でないように思います。 64bit専用インストーラは32bit OS上で起動できないように、64bitアプリケーション(あるいはmsi)として作成しておくのがよいのではないでしょうか。 Visual Studio付属のセットアップ プロジェクトでは、ターゲット プラットフォームをプロパティによって指定できるようになっています。 http://msdn.microsoft.com/ja-jp/library/cd7a85k9(v=VS.100).aspx 今は32bitから64bitへの過渡期で、まだまだ32bitが主流なのは確かですが、早めに64bit移行して動作保証しておいたほうがいいかもしれません。 ドライバーが絡むソフトやインライン アセンブラが使われているソフトは64bit移行につまずくことが多いようです。

ken2r
質問者

お礼

ご回答有難うございました。