/platform (Visual Basic)
更新 : 2007 年 11 月
出力ファイルをどのプラットフォーム用の共通言語ランタイム (CLR) で実行するかを指定します。
/platform:{ x86 | x64 | Itanium | anycpu }
引数
anycpu
任意のプラットフォームで実行するアセンブリをコンパイルします。/platform オプションを指定しなかった場合の既定の動作です。x86
32 ビットの x86 互換 CLR で実行されるアセンブリをコンパイルします。x64
AMD64 または EM64T 命令セットをサポートするコンピュータ上の 64 ビット CLR で実行されるアセンブリをコンパイルします。Itanium
Itanium プロセッサ搭載コンピュータ上の 64 ビット CLR で実行されるアセンブリをコンパイルします。
解説
/platform オプションでは、出力ファイルの実行対象となるプロセッサの種類を指定します。
通常、Visual Basic で記述された .NET Framework アセンブリは、プラットフォームに関係なく同じように実行されます。ただし、プラットフォーム間で動作の異なる場合があります。その一般的な例を次に示します。
プラットフォームによってメンバのサイズが変わる構造体 (ポインタ型など)
定数のサイズを含むポインタ演算
ハンドルに IntPtr ではなく Integer を使用した不適切なプラットフォーム呼び出しまたは COM 宣言
IntPtr から Integer へのキャスト
すべてのプラットフォームに存在するとは限らないコンポーネントを使用したプラットフォーム呼び出しまたは COM 相互運用機能
コードの実行対象となるアーキテクチャをあらかじめ想定している場合は、/platform オプションを使用することで、問題が緩和されることもあります。具体的には、以下の警告があります。
64 ビット プラットフォームを対象とすることにし、アプリケーションを 32 ビット コンピュータで実行した場合、このスイッチを使わなかった場合よりも早い段階でエラー メッセージが生成され、また、メッセージ自体もプラットフォームに特化した具体的な内容になります。
このスイッチで 32 ビット オプションを設定し、その後、アプリケーションを 64 ビット コンピュータで実行した場合、ネイティブな実行環境ではなく、WOW サブシステムで実行されます。
64 ビットの Windows オペレーティング システムでは次のようになります。
/platform:x86 を指定してコンパイルしたアセンブリは、WOW64 環境の 32 ビット CLR 上で実行されます。
/platform:anycpu を指定してコンパイルした実行可能ファイルは、64 ビット CLR 上で実行されます。
/platform:anycpu を指定してコンパイルした DLL は、ロード先のプロセスと同じ CLR 上で実行されます。
64 ビットの Windows オペレーティング システム上で実行されるアプリケーションの開発の詳細については、「64 ビット アプリケーション」を参照してください。
Visual Studio 統合開発環境で /nowarn を設定するには
ソリューション エクスプローラでプロジェクトを選択します。[プロジェクト] メニューの [プロパティ] をクリックします。詳細については、「プロジェクト デザイナの概要」を参照してください。
[コンパイル] タブをクリックします。
[詳細] をクリックします。
[ターゲット CPU] ボックスの値を変更します。
使用例
次の例は、/platform を使用して、Itanium 搭載の 64 ビット Windows オペレーティング システム上の 64 ビット CLR でのみ実行されるアプリケーションをコンパイルする方法を示しています。
vbc /platform:Itanium myItanium.vb