Welcome to MSDN Blogs Sign in | Join | Help

64bit アプリケーション開発~その2~

64ビットの話題のつづきです。前回は、WOW64まで書きました。   

 

このWOW64の存在もあり、64ビット、32ビットのアプリケーションのどちらも、64ビットプロセッサで動作することになります。ちなみに、Visual Studio 2005自身も、32ビットアプリケーションですが、WOW6464ビット プロセッサ上で稼動させることができます。

 

 C/C++を使ったUnmanaged Codeは、ターゲット プラットフォームを決めて、コンパイル・リンクされているので、64ビット上の動作の結果はシンプルです。指定したとおりです。

一方、Managed Code.NET Frameworkにおいては、.NET Frameworkは中間コードをベースに実行されるので、より柔軟です。また、これは、.NET Frameworkside by side動作条件にも依存しています。

 64ビットバージョンの.NET Framework 2.0は、32ビット版と同じ、(1)CLR(2)Framework Class Libraries(FCL)および(3)SDKのコンンポーネントをもちます。そして、64ビット プロセッサでその動作環境が選択される基準は以下になります。

 

  • .NET Framework 1.01.1で書かれたアプリケーションは、WOW6432ビットアプリケーションとして動作します。
  • .NET Framework 2.0の場合は、コンパイル時にx86, Itanium, x64, anycpu(デフォルト)を指定します。Anycpuの場合、64ビットプロセッサの場合は64ビットで動作し、32ビットプロセッサの場合32ビットで動作します。Visual Studio 2005では、Configuration Managerを使って、どのプラットフォームで動作させるかの指定ができます。 

 一般に32ビットと64ビットでの違いは、浮動小数点、メモリ境界、ポインタのアドレスの長さです。.NET Frameworkの場合も同様で、浮動小数点は、一部の操作で非互換な部分があります。メモリ境界は、32ビットの場合は、1248バイトですが、64ビットは加えて1016バイト目からも始まります。10バイトを超える場合は、16バイトの境界から始まります。ポインタは当然32ビットと64ビットの違いがあります。これらに対応する方法も提示されています。

 

 64ビットといえば、サーバー側のデータベース管理システムの実行環境やCADなどの技術系のワークステーションとして注目しがちですが、ASP.NETWebサービスのサーバーサイドのアプリケーション動作環境としても優れたプラットフォームになります。

Published Monday, October 24, 2005 3:04 PM by 北川 裕康

Comments

Anonymous comments are disabled
 
Page view tracker