我正在使用Visual Studio 2005和WDK 7600.16385.1.i正在编译用户模式打印机驱动程序它将成功构建当我为平台选择“Win32”但是当我为“x64”构建此驱动程序时我得到编译器错误tha是如下所示
C:\ WinDDK \ 7600.16385.1 \ inc \ api \ winnt.h(135):致命错误C1189:#error:“没有目标架构”
我检查了winnt.h,代码在下面给出
#if defined(_WIN64)
#if defined(_AMD64_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#else
#error "No Target Architecture"
#endif
#define PROBE_ALIGNMENT32( _s ) TYPE_ALIGNMENT( DWORD )
#else
下面给出了和C / C ++命令行开关(从项目“property-> C / C ++ - >命令行”中复制)
/Od /Oi /I "..\inc" /I "C:\WinDDK\WXP\inc\wxp" /I "C:\WinDDK\WXP\inc\crt" /I "C:\WinDDK\WXP\inc" /D "_X86_=1" /D "i386=1" /D "STD_CALL" /D "CONDITION_HANDLING=1" /D "WIN32_LEAN_AND_MEAN=1" /D "NT_UP=1" /D "NT_INST=0" /D "WIN32=100" /D "_NT1X_=100" /D "_WIN32_WINNT=0X0500" /D "WINNT" /D "DEVL=1" /D "FPO=0" /D "UNICODE" /D "_IDWBUILD" /D "USERMODE_DRIVER" /D "DBG=1" /D "DEBUG" /D "RDRDBG" /D "SRVDBG" /GF /FD /MTd /Zp8 /GS- /Gy /Fo".\Debug/" /Fd"x64\Debug\vc80.pdb" /W1 /nologo /c /Z7 /Gz /TP /FI "..\inc\warning.h" /errorReport:prompt
请尽快帮助我
答案 0 :(得分:1)
我最好的猜测是在项目属性中定义_AMD_64_
(假设你使用的是x64而不是ia64)
答案 1 :(得分:0)
为什么要尝试在Visual Studio中构建它?使用WDK和标准构建过程(即sources / makefile和build)。
-Scott