2

64 ビット OS で ANYCPU としてコンパイルされた EXE ウィッチを 32 ビット モードで実行することは可能ですか?

開始モードを設定する方法はありますか?

アドバイスをありがとう

4

2 に答える 2

1

NET Framework 4.5 を使用してアプリをコンパイルした場合は可能です。この環境では、[32 ビットを優先] を選択して、基盤となる OS が 64 ビットの場合でもアプリを強制的に 32 ビット モードで実行することができます。

32ビットを好む

これは、この記事の関連部分です。

.NET 4.5 と Visual Studio 11 ではチーズが移動されました。ほとんどの .NET プロジェクトのデフォルトは再び AnyCPU ですが、AnyCPU には複数の意味があります。AnyCPU の追加のサブタイプ「Any CPU 32 ビット優先」があり、これが新しいデフォルトです (全体として、/platform C# コンパイラ スイッチには、x86、Itanium、x64、anycpu、および anycpu32bitpreferred の 5 つのオプションがあります)。 )。AnyCPU のそのフレーバーを使用する場合、セマンティクスは次のようになります。

  • プロセスが 32 ビット Windows システムで実行されている場合、プロセスは 32 ビット プロセスとして実行されます。IL は x86 マシン コードにコンパイルされます。
  • プロセスが 64 ビット Windows システムで実行される場合、32 ビット プロセスとして実行されます。IL は x86 マシン コードにコンパイルされます。
  • プロセスが ARM Windows システムで実行される場合は、32 ビット プロセスとして実行されます。IL は ARM マシン コードにコンパイルされます。
于 2014-02-20T14:59:53.973 に答える
0

はい !!

「AnyCPU」と言うと、 JITがこれを処理します。64 ビット プロセスにロードされると 64 ビット ライブラリがロードされ、32 ビット プロセスにロードされると 32 ビット ライブラリがロードされます。

使用している Visual Studio のバージョンを指定していないため、プロジェクト ファイルを手動で編集して、アプリを強制的に 32 ビットで実行することができます。

<Reference Include="Filename, ..., processorArchitecture=x86">
  <HintPath>C:\..\x86\DLL</HintPath>
</Reference>

必要な領域でプラットフォームの値を変更します。

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
   <Reference ...>....</Reference>
</ItemGroup>
于 2014-02-20T14:55:20.273 に答える