/CLRIMAGETYPE (CLR イメージのタイプの指定)
更新 : 2007 年 11 月
/CLRIMAGETYPE:{IJW|PURE|SAFE}
解説
リンカは、/clr、/clr:pure、または /clr:safe を指定してコンパイルされた MSIL オブジェクトだけでなくネイティブ オブジェクトも受け入れます。同じビルドに混在するオブジェクトを渡すと、生成される出力ファイルの検証可能性は、既定で入力モジュールの最低レベルの検証可能性と等しくなります。たとえば、安全で純粋なモジュールをリンカに渡した場合は、出力ファイルは純粋になります。ネイティブ イメージ、および /clr を指定してコンパイルされた混合モード イメージを渡す場合、結果のイメージは混合モード イメージになります。
/CLRIMAGETYPE では、必要に応じてより低い検証可能性を指定できます。
safe イメージが 32 ビットのリソースを読み込む場合に、/CLRIMAGETYPE を使用して安全な実行可能ファイルを 64 ビット オペレーティング システムの WOW64 で実行するように指定する方法については、「/clr (共通言語ランタイムのコンパイル)」を参照してください。
64 ビット オペレーティング システムの /clr または /clr:pure を指定してコンパイルされた .exe を実行すると、アプリケーションは WOW64 で実行されるため、32 ビット アプリケーションを 64 ビット オペレーティング システム上で実行できます。既定では、/clr:safe を指定してコンパイルされた .exe は、オペレーティング システムの 64 ビット サポートを使用して実行されます。ただし、お使いの安全なアプリケーションで 32 ビット コンポーネントを読み込むことができます。この場合、オペレーティング システムの 64 ビット サポートで実行している安全なイメージで 32 ビット アプリケーションを読み込もうとすると失敗します。安全なイメージが 32 ビット アプリケーションを 64 ビット オペレーティング システムに読み込む場合に失敗せずに実行し続けるためには、/CLRIMAGETYPE (CLR イメージのタイプの指定) リンカ オプションを使用してメタデータ (.corflags) を変更し、WOW64 で実行するようにマークする (独自のエントリ シンボルに置き換える) 必要があります。
cl /clr:safe t.cpp /link /clrimagetype:pure /entry:?main@@$$HYMHXZ /subsystem:console
ファイルの CLR イメージのタイプを判断する方法については、「/CLRHEADER」を参照してください。
Visual Studio 開発環境でこのリンカ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[構成プロパティ] ノードを展開します。
[リンカ] ノードを展開します。
[詳細] プロパティ ページをクリックします。
[CLR イメージ タイプ] プロパティを変更します。
このリンカをコードから設定するには
- CLRImageType を参照してください。