2012-06-14 28 views

回答

5

爲什麼會出現這種情況?

對於大多數應用程序,構建爲32位實際上更好。 64位提供了很多好處,並且在大多數情況下存在一些明顯的缺點(更高的內存使用率,更復雜的多平臺依賴管理,更糟糕的調試體驗等)。但是,如果你的應用需要能夠使用大量的內存,那麼當然64位具有優勢(並且很容易在VS中切換),但是大多數應用不屬於這種情況。

這就是爲什麼VS 2012中的新默認值是使用AnyCPUPrefer32Bit而不是AnyCPU的應用程序。

0

如果您選擇指定一個CPU,則會自動將.exe限制到一個平臺或另一個平臺。

裏面很少有任何理由這樣做,除非你絕對有32位依賴性:

換句話說,沒有「性能「問題。真正的問題是「兼容性」。如果您加載任何32位組件,並且您使用的是64位平臺,那麼您必須調用WOW64。 CLRTIMAGETYPE允許你這樣做。

+2

不完全知道這是如何回答這個問題的...... – BoltClock

+1

當我讀到問題時,問題在於VS選擇默認情況下特定於平臺的設置。 –

+2

另外 - 通過選擇x86,您不會將.exe限制爲x86。 64位Windows將在WOW64下運行x86可執行文件而不會出現問題。挑選x64確實有限制,但所有其他選項都不會。 –

2

根據此bug report,這是因爲在使用x64代碼的x64機器上編輯並繼續時出現問題。通過將其更改爲x86,編輯並繼續正常工作。

切換到AnyCPU應該沒有危險。我總是這樣做。

相關問題