/platform (Visual Basic)
出力ファイルをどのプラットフォーム用の共通言語ランタイム (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 を設定するには |
|
使用例
次の例は、/platform を使用して、Itanium 搭載の 64 ビット Windows オペレーティング システム上の 64 ビット CLR でのみ実行されるアプリケーションをコンパイルする方法を示しています。
vbc /platform:Itanium myItanium.vb
参照
参照
コンパイル コマンド ラインのサンプル (Visual Basic)