windows ddk korrekt einbinden

aurux

Grünschnabel
hallo,

ich hab mir das windows 2000 ddk heruntergeladen und die datei ntddk.h
in mein projekt eingebunden, aber dann hat der kompiler folgende fehlermeldungen ausgegeben:

g:\ntddk\inc\ddk\ntddk.h(370) : error C2146: syntax error : missing ';' before identifier 'Lock'
g:\ntddk\inc\ddk\ntddk.h(370) : error C2501: 'PULONG_PTR' : missing storage-class or type specifiers
g:\ntddk\inc\ddk\ntddk.h(370) : error C2501: 'Lock' : missing storage-class or type specifiers
g:\ntddk\inc\ddk\ntddk.h(824) : error C2146: syntax error : missing ';' before identifier 'KSPIN_LOCK'
g:\ntddk\inc\ddk\ntddk.h(824) : fatal error C1004: unexpected end of file found

ich habe keine andere datei vor der ntddk.h inkludiert und würde gerne wissen ob jemand weiß welche datei man noch einbinden muss oder welche kompiler einstellungen man vornehmen muss damit alles fehlerfrei funktioniert.

danke schon mal im vorraus

aurux
 
Ich kenne mich damit zwar nicht aus, habe aber bei Google mal nach "PULONG_PTR" gesucht. Der wird anscheinend in basetsd.h deklariert.
Vielleicht lösen sich die anderen Problemfälle ("KSPIN_LOCK" usw.) auf ähnliche Weise.
 
Wenn du "ins Projekt eingebunden" sagst, hast du aber nicht einfach nur die .h includet? Das Problem mit dem DDK (selbst mit der neuesten Ausgabe) ist, das es überhaupt nicht mit der IDE (Visual Studio) zusammen arbeitet, sondern rein Kommandozeilen-basiert ist (so wie vor 500 Jahren).

Reine DDK-Projekte benutzen dann auch ein Makefile, und es müssen die passenden Environment-Variablen gesetzt sein.

Wenn es um ein reines DDK-Projekt (ein Treiber oder so ähnlich) geht, dann suche im Netz nach ddkbuild.bat, das ermöglicht dir recht einfach, das Erstellen über die IDE abzufackeln, was ja doch drei Ecken komfortabler ist.

Wenn du nur ein paar DDK-Header included willst, um ein paar SetupDiXX-Befehle zu verwenden, ist es einfacher. Dann musst du nur die zusätzlichen Header finden, wie Kachelator ja schon für dich gemacht hat. Die passenden LIBs includen und dann sollte das laufen.
 
Zurück