Ошибка Bulid для 64-разрядной ОС на Vistual Studio 2005 - PullRequest
1 голос
/ 26 мая 2011

Я использую Visual Studio 2005 с WDK 7600.16385.1.i Я компилирую пользовательский режим. Драйвер принтера будет успешно создан, когда я выберу «Win32» для платформы, но когда я создаю этот драйвер для «x64», я получаю ошибку компилятора дано ниже

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 ++ -> Command Line")

/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

Пожалуйста, помогите мне как можно скорее

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Моим лучшим предположением было бы определение _AMD_64_ в свойствах проекта (при условии, что вы используете x64, а не ia64)

0 голосов
/ 10 июня 2011

Почему вы пытаетесь построить это из Visual Studio? Использование WDK и стандартной процедуры сборки (т.е. sources / makefile и build).

-Скотт

...