マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

本ページでは、64bitプラットフォーム移行に伴うアプリケーションの環境移行、ポーティング移行の作業範囲を扱います。

WOW64

通常のアプリケーション

以下に、WOW64を使用する際の注意点を記述する
(詳細は参考の「WOW64 のベスト プラクティス」を参照)。

Webアプリケーション

IIS

IISのワーカプロセス(ASPやASP.NETなどのWebアプリケーションがホストされる)も32bit(WOW64)をサポートする。

IIS Express

IIS Expressを64bitで動作させることも可能。

  1. Visual Studioのメニューから[ツール] - [オプション]を開く
  2. [プロジェクトおよびソリューション] - [Web プロジェクト]を開く
  3. [Web サイトおよびプロジェクト用 IIS Express の64ビットバージョンを使用]のチェックをONにする

レガシーASP

なお、レガシーASPは、32bit(WOW64)もサポートする。
ただし、殆どの場合は、使用するCOMが 「32bitのVB COM」で開発されているので、
WOW64上で32bitアプリケーションとして動作させることとなる。
COMを経由した32ビットABIのコードと64ビットABIのコードは相互運用できない。)

ASP.NET

VC++

データモデル

最も大きな問題は32bit、64bit間のデータモデルの変更である。
以下、64プラットフォームのデータモデルについて説明する。

今日では、多くの64bitコンパイラがLP64モデルを採用している
(Solaris、AIX、Mac OS X、z/OS のネイティブコンパイラなど)が、
マイクロソフトのVC++コンパイラはLLP64モデルを採用している。

64bitデータモデル

データモデルshortintlonglonglongポインタ処理系
LLP641632326464Microsoft Win64 (X64/IA64)
LP641632646464ほとんどのUnixとUnix風OS (Solaris, Linux, etc.)
IP641664326464?
ILP641664646464HAL
SILP646464646464?

詳しくは、下記の参考を参照。

64bit COM

.NET、ASP.NET

以下、.NETのアプリケーションの64bit対応のポイントについて説明する。

100%タイプ セーフな場合

100%タイプ セーフなマネージ コードであれば、そのまま移行可能。

100%タイプ セーフでない場合

100%タイプ セーフでない場合は、Windowsの64bitプラットフォームがLLP64モデルであることを意識してコードを書きなおす必要がある。

コンパイル オプション(構成のtarget platform)

既定値

参考

WOW64

Microsoft

その他

移行

MSDN


Tags: :プログラミング, :移行, :.NET開発


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS