2

私はWindowsフォームアプリケーションを作成中ですが、アプリケーションを32ビットと64ビットの両方のマシンで実行できるようにするための質問が1つあります。

私は自分の質問をグーグルで検索し、プラットフォームターゲットを「任意のCPU」からx86に変更してからコンパイルする1つの解決策を見つけました。その後、両方のシステムで動作します。

ここで私の質問は、これを達成するために他に何かする必要がありますか、それとも上記の解決策で問題ありません。

アプリケーションを作成している最中なので、現在テストできません。

4

3 に答える 3

3

はい、あなたがしなければならないことがあと3つあります。実用的なことです。

  1. コードを64ビットモードで実行して、実際に進んでいるかどうかを確認する必要があります。一般に、64ビットコードは32ビットコードよりも実行速度が少し遅く、ポインタサイズが2倍になるため、CPUキャッシュの使用効率が大幅に低下します。8つの追加のCPUレジスタがあることでいくらか補償されます。内部ループでlong型またはdouble型の値を多数操作した場合にのみ、パフォーマンスの利点が得られます。より多くのメモリを使用できるようになるとパフォーマンスが向上しますが、プログラムを32ビットモードで実行する必要がある場合は、それを実現するのはかなり困難です。

  2. 32ビットと64ビットの両方のオペレーティングシステムでコードをテストする必要があります。ネイティブコードへの依存を回避するのはかなり難しいですが、その多くは、ネイティブコードとして認識されない可能性のあるラッパーに埋め込まれています。たとえば、データベースプロバイダー。このようなコードには、同じように動作しない可能性のある2つの異なるフレーバーがあります。

  3. 実際にそのような依存関係がある場合は、ターゲットマシンに正しいネイティブDLLをデプロイする2つのインストーラーを作成する必要があるかもしれません。1つの64ビットおよび1つの32ビットインストーラー。あなたがそうするかどうかは、箇条書き#2で洗い流す必要があります。

明らかに、最初に箇条書き1に焦点を合わせたいので、2番と3番をスキップするのに役立つかもしれません。

于 2012-09-07T12:30:38.933 に答える
2

ソリューションエクスプローラー->[プロパティ]をダブルクリックします(新しいタブが開きます)->[ビルド]タブ

アプリケーションが32ビットコンピューターと64ビットコンピューターの両方で動作するように構成を設定します。'Any CPU'

任意のCPU

于 2012-09-07T12:11:10.290 に答える
1

オプションAnyCPU、x32bit、x64bitの比較を次に示します。

「AnyCPUでは32ビットと64ビットの両方のボックスで実行できますが、x64では64ビットでしか実行できません」

あなたの投稿から、使用しない理由はわかりませんAny CPU

于 2012-09-07T12:20:52.930 に答える