2011-07-13 8 views
18

既に存在している32ビットプロジェクトから64ビット構成を追加すると、Visual Studioはデフォルトで32ビット構成をコピーします。 VS偶数コピー_WIN32
私の64bitプロジェクトはすべて、32bit Windows上で実行することはできませんが、現在_WIN32と定義されています。私にとっては非常に不快です。_WIN32と_WIN64の両方を64bitビルドで定義する必要がありますか?

問題がなければ_WIN32を削除したいと思います。そのことはよくわからない。
_WIN32の定義を削除しても問題ありませんか?

+0

いいですか?わからない。あなたの目的は何ですか? – Oded

+0

削除することができるかどうかを知りたいだけですが、アプリケーションが実行される場所について十分な詳細を提供していません(32ビットで実行されますか?はい?いいえ)。 – Oded

答えて

49

_WIN32は、あなたの考えを意味するものではありません。つまり、「Windows APIを使用しています」という意味です。 Windows NT 3.1の時代には、Windowsのバージョン3で使用されていた16ビットAPIとは区別されるように、32のポストフィックスが追加されました。この用語はビットの問題のために好まれていません。これをstackoverflow.comで見ることができます。[win32]タグはあなたを[winapi]に連れて行きます。

これを削除しないでください.Windows APIを使用しています。

32

predefined macrosのドキュメントは言う:

_WIN32:Win32とWin64のためのアプリケーションのために定義され。常に定義されています。

_WIN64: Win64のアプリケーション用に定義されています。

_WIN32常にが定義さは、それが64ビットアプリケーションでは問題にならないはずですので、だけではなく。したがって、私はそれを削除しないことをお勧めします。

+0

良いリンク。ありがとう。 – Benjamin

+0

リンクが役立ちます。 – sevenOfNine

5

どちらも定義しないでください。

コンパイラはそれらを適切に定義します。

2

_WIN32:Win32およびWin64のアプリケーション用に定義されています。常に定義されています。

_WIN64:Win64のアプリケーション用に定義されています。

詳細:Predefined Macros

簡単に言えば、WIN32/_WIN32はWindows(システムアプリケーションを使用する場合)を使用しているかどうかを判別するために使用され、_WIN64はコンパイル環境にx86またはx64を示すのに使用されます。

アプリケーションがWindows x64で動作しているかどうかを知りたい場合は、Windows API IsWow64Processを使用する必要があります。

関連する問題