Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не могу скомпилировать NATIVE-приложение, с использованием DDK 
V
    Опции темы
586
Дата 17.10.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Код
#pragma comment (linker, "/SYBSYSTEM:NATIVE")
#pragma comment(linker,"/BASE:0x00010000 /ENTRY:native_main")
#pragma comment(lib, "C:\\masm32\\lib\\w2k\\ntdll.lib")
// I:\WINDDK\2600\inc\ddk\wxp

#define _X86_
#include <ntddk.h>

typedef struct {
    ULONG Unknown[21]; 
    UNICODE_STRING CommandLine;
    UNICODE_STRING ImageFile;
} ENVIRONMENT_INFORMATION, *PENVIRONMENT_INFORMATION;

typedef struct {
    ULONG Unknown[3];
    PENVIRONMENT_INFORMATION Environment;
} STARTUP_ARGUMENT, *PSTARTUP_ARGUMENT;

#define US(x, d)  UNICODE_STRING x={sizeof(d)/sizeof(wchar_t), sizeof(d), d)


void native_main(PSTARTUP_ARGUMENT arg)
{
    static US(msg, L"Hello world!");
    NtDisplayString(&msg);
    NtTerminateProcess(NtCurrentProcess(), 0);
}
Код
@echo off
set include=I:\WINDDK\2600\inc\ddk\wxp;I:\WINDDK\2600\inc\wxp;%include%
I:\WINDDK\2600\bin\x86\cl.exe native.cpp
rem "C:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.exe" native.cpp
echo.
pause

при компиляции вываливается гора ошибок:
Код
native.cpp
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(350) : error C2146: syntax error : missing ';' before identifier 'Lock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(350) : error C2501: '_KDPC::PULONG_PTR' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(350) : error C2501: '_KDPC::Lock' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1784) : error C2146: syntax error : missing ';' before identifier 'KSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1784) : error C2501: 'KSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1785) : error C2143: syntax error : missing ';' before '*'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1785) : error C2378: 'KSPIN_LOCK' : redefinition; symbol cannot be overloaded with a typedef
        I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1784) : see declaration of 'KSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1785) : error C2501: 'PKSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1833) : error C2143: syntax error : missing ';' before 'volatile'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(1833) : error C2501: '_KSPIN_LOCK_QUEUE::PKSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(2152) : warning C4162: '_ReturnAddress' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6587) : error C2146: syntax error : missing ';' before identifier 'SetMember'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6587) : error C2501: '_KPCR::KAFFINITY' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6587) : error C2501: '_KPCR::SetMember' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6852) : warning C4162: '_InterlockedExchange' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6878) : warning C4162: '_InterlockedIncrement' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6891) : warning C4162: '_InterlockedDecrement' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6905) : warning C4162: '_InterlockedExchangeAdd' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6935) : warning C4162: '_InterlockedCompareExchange' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6987) : warning C4162: '_InterlockedOr' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(6997) : warning C4162: '_InterlockedAnd' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(7007) : warning C4162: '_InterlockedXor' : no function with C linkage found
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(9866) : error C2146: syntax error : missing ';' before identifier 'Affinity'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(9866) : error C2501: '_CM_PARTIAL_RESOURCE_DESCRIPTOR::__unnamed::__unnamed::KAFFINITY' : missing storage-class or type specif
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(9866) : error C2501: '_CM_PARTIAL_RESOURCE_DESCRIPTOR::__unnamed::__unnamed::Affinity' : missing storage-class or type specifi
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(10006) : error C2146: syntax error : missing ';' before identifier 'AffinityMask'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(10006) : error C2501: '_CM_COMPONENT_INFORMATION::KAFFINITY' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(10006) : error C2501: '_CM_COMPONENT_INFORMATION::AffinityMask' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(10747) : error C2146: syntax error : missing ';' before identifier 'Lock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(10747) : error C2501: '_KDEVICE_QUEUE::KSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(10747) : error C2501: '_KDEVICE_QUEUE::Lock' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11355) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11355) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11355) : error C2182: 'KeInitializeSpinLock' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11355) : error C2491: 'KeInitializeSpinLock' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11355) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11355) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11364) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11364) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11364) : error C2182: 'KefAcquireSpinLockAtDpcLevel' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11364) : error C2491: 'KefAcquireSpinLockAtDpcLevel' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11364) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11364) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11371) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11371) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11371) : error C2182: 'KefReleaseSpinLockFromDpcLevel' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11371) : error C2491: 'KefReleaseSpinLockFromDpcLevel' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11371) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11371) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11381) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11381) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11381) : error C2491: 'KfAcquireSpinLock' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11381) : error C2440: 'initializing' : cannot convert from 'int *' to 'KIRQL'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11381) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11387) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11387) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11387) : error C2182: 'KfReleaseSpinLock' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11387) : error C2491: 'KfReleaseSpinLock' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11387) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11389) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11398) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11398) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11398) : error C2491: 'KeAcquireSpinLockRaiseToSynch' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11398) : error C2440: 'initializing' : cannot convert from 'int *' to 'KIRQL'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11398) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11449) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11449) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11449) : error C2491: 'KeTryToAcquireSpinLockAtDpcLevel' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11449) : error C2440: 'initializing' : cannot convert from 'int *' to 'BOOLEAN'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11449) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11561) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11561) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11561) : error C2182: 'KeAcquireInStackQueuedSpinLock' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11561) : error C2491: 'KeAcquireInStackQueuedSpinLock' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11561) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11563) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11582) : error C2146: syntax error : missing ')' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11582) : warning C4229: anachronism used : modifiers on data are ignored
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11582) : error C2182: 'KeAcquireInStackQueuedSpinLockAtDpcLevel' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11582) : error C2491: 'KeAcquireInStackQueuedSpinLockAtDpcLevel' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11582) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11584) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11691) : error C2146: syntax error : missing ';' before identifier 'KeQueryActiveProcessors'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(11691) : error C2501: 'KAFFINITY' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12025) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12035) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12062) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12071) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12079) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12087) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12096) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12420) : error C2146: syntax error : missing ';' before identifier 'Lock__ObsoleteButDoNotDelete'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12420) : error C2501: '_NPAGED_LOOKASIDE_LIST::KSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12420) : error C2501: '_NPAGED_LOOKASIDE_LIST::Lock__ObsoleteButDoNotDelete' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(12811) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(13050) : error C2146: syntax error : missing ';' before identifier 'SpinLock'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(13050) : error C2501: '_ERESOURCE::KSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(13050) : error C2501: '_ERESOURCE::SpinLock' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17113) : error C2061: syntax error : identifier 'PKSPIN_LOCK'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17433) : error C2065: 'PULONG_PTR' : undeclared identifier
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17433) : error C2146: syntax error : missing ')' before identifier 'LowLimit'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17433) : error C2182: 'IoGetStackLimits' : illegal use of type 'void'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17433) : error C2491: 'IoGetStackLimits' : definition of dllimport data not allowed
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17435) : error C2059: syntax error : ')'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17450) : error C2064: term does not evaluate to a function
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17979) : error C2146: syntax error : missing ';' before identifier 'Spin'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17979) : error C2501: '_IO_REMOVE_LOCK_DBG_BLOCK::KSPIN_LOCK' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(17979) : error C2501: '_IO_REMOVE_LOCK_DBG_BLOCK::Spin' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(19384) : error C2146: syntax error : missing ';' before identifier 'WorkSpace'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(19384) : error C2501: '_ARBITER_LIST_ENTRY::LONG_PTR' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(19384) : error C2501: '_ARBITER_LIST_ENTRY::WorkSpace' : missing storage-class or type specifiers
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(19702) : error C2061: syntax error : identifier 'PKAFFINITY'
I:\WINDDK\2600\inc\ddk\wxp\ntddk.h(20112) : error C2061: syntax error : identifier 'PULONG_PTR'
native.cpp(27) : error C2065: 'NtDisplayString' : undeclared identifier
native.cpp(28) : error C2065: 'NtTerminateProcess' : undeclared identifier
native.cpp(28) : error C2065: 'LONG_PTR' : undeclared identifier


В чём пожет быть проблема? И как вообще DDK пользоваться? Я никогда драйвера и native-приложения на с++ не писал.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.