すべての手順が正しく行われました。_AMD64_
シンボルは、既定では Visual Studio によって事前定義されていません。使用する場合は、自分で定義する必要があります。
#if defined _M_X64 || defined _M_AMD64
#define _AMD64_
#endif
しかし、あなたはその存在の記憶を作り上げていません。Windows DDK には、他のシンボルに加えて、このシンボルを定義するメイクファイルが付属しています。チェックインしmakefile.def
ます。可能性は次のとおりです。
_X86_
x86、i386、および IA-32 としてさまざまに知られています
(これは、VS の事前定義された と同じです_M_IX86
)
_AMD64_
AMD64、x64、x86-64、IA-32e、および Intel 64 としてさまざまに知られています(これは、VS の定義済みおよび と
同じです)_M_X64
_M_AMD64
_IA64_
Intel Itanium (IA-64)
(これは VS の事前定義されたものと同じです_M_IA64
)
…そして、もはや誰もターゲットにしないアーキテクチャー向けの他のいくつか
理想的には、独自のコードで使用する一連の既知のマクロを事前定義するようにビルド システムを構成します。ビルド システムがない場合は、少なくともプリコンパイル済みヘッダー ファイルに何かを設定します。そうすれば、どこでも実装依存のシンボルに依存することはなく、コンパイラを切り替えるのも大変な作業ではありません。たとえば、GCC によって事前定義されたターゲット アーキテクチャのシンボルは、MSVC とは大きく異なります。