Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   DDKWizard/DDKBUILD - nur was für Faule ;) (https://www.delphipraxis.net/78473-ddkwizard-ddkbuild-nur-fuer-faule-%3B.html)

Olli 5. Okt 2006 15:28


DDKWizard/DDKBUILD - nur was für Faule ;)
 
Hi Leute,

Anfang dieser Woche habe ich ein neues Tool veröffentlicht. Diesmal weder Delphi noch C/C++ (na gut a bisserl C/C++ ist drin ;)).

Es handelt sich um einen Wizard für Visual Studio, der es ermöglichen soll einfach und schnell Projekte zu erstellen, die für DDKBUILD vorkonfiguriert sind. DDKBUILD ist ein Skript welches zuerst von Mark Roddy veröffentlicht wurde und dann von OSR verbessert wurde. Seit Januar diesen Jahres gibt es die dritte Geschmacksrichtung, welche im Grunde ein Rewrite des OSR-Skripts ist und von mir stammt, siehe hier.

Lange Rede kurzer Sinn. Wer NT/WDM-Treiber schreiben möchte, kann DDKWizard austesten und auch gern Feedback liefern. Wenn ihr es gut findet, sagt's weiter. :mrgreen:

Download und Doku finden sich hier:
http://ddkwizard.assarbad.net/
(Die Links werden auch gültig bleiben, wenn ich mal was ändere)

Man braucht mindestens Visual Studio 2003, für alle Features 2005. Außerdem ein DDK (ab Windows XP und ansonsten den VC6 Compiler wenn man das W2K DDK hat) und DDKBUILD.

[2007-09-07]: Links für die Skripte ergänzt und Formatierung leicht geändert. Link zum Manual geändert (alter Link geht aber nach wie vor). Link zum RSS-Feed.

Viel Spaß,

MagicAndre1981 5. Okt 2006 16:08

Re: DDKWizard - nur was für Faule ;)
 
cooles Teil :)

Hatte mir früher ein VC6 Projekt selber dafür erstellt. Habs gleich mal im VS2005 installiert und es geht, nur hab ich ein Problem mit dem WDK 5728 (vom Vista-Beta-Test auf Connect). Ich kann den Treiber nicht kompilieren.

Zitat:

error RRJ0019: A Tool returned an error code from "Performing Makefile project actions"
Als Pfad beim Wizzard hab ich den richtigen Pfad zum WDK angegeben.

Aber irgendwas mach ich immer noch falsch :oops: :duck:

Olli 6. Okt 2006 00:02

Re: DDKWizard - nur was für Faule ;)
 
Zitat:

Zitat von MagicAndre1981
cooles Teil :)

Hatte mir früher ein VC6 Projekt selber dafür erstellt. Habs gleich mal im VS2005 installiert und es geht, nur hab ich ein Problem mit dem WDK 5728 (vom Vista-Beta-Test auf Connect). Ich kann den Treiber nicht kompilieren.

Zitat:

error RRJ0019: A Tool returned an error code from "Performing Makefile project actions"
Als Pfad beim Wizzard hab ich den richtigen Pfad zum WDK angegeben.

Aber irgendwas mach ich immer noch falsch :oops: :duck:

Was ist denn die Ausgabe im entsprechenden Ausgabefenster? Hast du 2005 oder 2005 Express (auf letzterem ist es nicht getestet)? Die Schritte aus der PDF hast du befolgt?

MagicAndre1981 5. Dez 2006 00:48

Re: DDKWizard - nur was für Faule ;)
 
so, es gibt ein Update:

DDKWizard 1.0.2:

Zitat:

What’s new?

Three things have been changed or added:

* Option to create PREfast configurations as well.
* The Windows 2003 and Longhorn/Vista DDK are now preselected.
* There is a new project type “Empty Driver”. This allows you to create a project without creation of all the source files that DDKWizard would normally create. Perfect to create an empty project for incorporation of existing source files.
Download:

http://ddkwizard.assarbad.net/

Olli 19. Dez 2006 02:12

Re: DDKWizard - nur was für Faule ;)
 
Wiedermal aktualisiert:

http://blog.assarbad.net/20061216/ea...izard-updated/

Neotracer64 11. Aug 2007 18:06

Re: DDKWizard - nur was für Faule ;)
 
Ich finde DDKWizard richtig praktisch. :-D
Klappt auch alles wunderbar, nur habe ich ein problem.
Die Fehlersuche erweist sich als problematisch.

Ich habe zum Beispiel folgenden Fehler gemacht:
Delphi-Quellcode:
UNICODE_STRING      usName;
WCHAR    KeyName;
...
RtlInitUnicodeString(&usName,KeyName);
Es muss natürlich ein Pointer zu WCHAR sein also &KeyName.
Aber davon stand weit und breit nichts im Buildlog.
Was habe ich falsch eingestellt?

Zitat:

------ Build started: Project: test2.WLH, Configuration: WLH checked (PREfast) Win32 ------
Performing Makefile project actions
OSR DDKBUILD.CMD V7.0 RC1 (2007-05-30) - OSR, Open Systems Resources, Inc.
DDKBLD: Clearing %VS_UNICODE_OUTPUT% ...
DDKBLD: WLH (checked) using the Windows Vista/Longhorn Server DDK and %WLHBASE%
DDKBLD: Directory: G:\WinDDK projects\test2\test2 + argument(s): -cZ -prefast
DDKBLD: WLHBASE: G:\WinDDK
DDKBLD: Run prefast build -Ze -cZ -e for checked version in .
path contains nonexistant c:\windows\syswow64, removing
BUILD: Compile and Link for x86
BUILD: Start time: Sat Aug 11 19:01:33 2007
BUILD: Examining g:\winddk~2\test2\test2 directory for files to compile.
g:\winddk~2\test~1\test~1
BUILD: Compiling and Linking g:\winddk~2\test2\test2 directory
Compiling resources - drvversion.rc
Compiling - test2.cpp
Compiling - test2.cpp
Linking Executable - objchk_wlh_x86\i386\test2.sys
errors in directory g:\winddk~2\test2\test2
link : error LNK1181: cannot open input file 'objchk_wlh_x86\i386\test2.obj'
BUILD: Finish time: Sat Aug 11 19:01:42 2007
BUILD: Done
5 files compiled - 1 Warning
1 executable built - 1 Error
DDKBLD: The PREfast logfile is "PREfast_defects_chk_wlh_x86.xml"!
DDKBLD: Build complete
DDKBLD: Building browse information files
Build log was saved at "file://g:\WinDDK projects\test2\test2\BuildLog.htm"
test2.WLH - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Olli 11. Aug 2007 19:41

Re: DDKWizard - nur was für Faule ;)
 
Zitat:

Zitat von Neotracer64
Es muss natürlich ein Pointer zu WCHAR sein also &KeyName.
Aber davon stand weit und breit nichts im Buildlog.
Was habe ich falsch eingestellt?

Eher "WCHAR Keyname[Groesse]" oder "WCHAR* KeyName". Einfach ein "&" davor hilft nicht, weil ein WCHAR eben nur 2 Byte halten kann. Ist der Wert des WCHAR ungleich 0, sollte der Spaß schon fehlschlagen.

Zitat:

Zitat von Neotracer64
Code:
------ Build started: Project: test2.WLH, Configuration: WLH checked (PREfast) Win32 ------
Performing Makefile project actions
OSR DDKBUILD.CMD V7.0 RC1 (2007-05-30) - OSR, Open Systems Resources, Inc.
DDKBLD: Clearing %VS_UNICODE_OUTPUT% ...
DDKBLD: WLH (checked) using the Windows Vista/Longhorn Server DDK and %WLHBASE%
[color=darkgreen]DDKBLD: Directory: G:\WinDDK projects\test2\test2 + argument(s): -cZ -prefast[/color]
DDKBLD: WLHBASE: G:\WinDDK
DDKBLD: Run prefast build -Ze -cZ -e for checked version in .
path contains nonexistant c:\windows\syswow64, removing
BUILD: Compile and Link for x86
BUILD: Start time: Sat Aug 11 19:01:33 2007
BUILD: Examining g:\winddk~2\test2\test2 directory for files to compile.
    g:\winddk~2\test~1\test~1 
BUILD: Compiling and Linking g:\winddk~2\test2\test2 directory
Compiling resources - drvversion.rc
Compiling - test2.cpp
Compiling - test2.cpp
Linking Executable - objchk_wlh_x86\i386\test2.sys
errors in directory g:\winddk~2\test2\test2
[color=red]link : error LNK1181: cannot open input file 'objchk_wlh_x86\i386\test2.obj'[/color]
BUILD: Finish time: Sat Aug 11 19:01:42 2007
BUILD: Done
    5 files compiled - 1 Warning
    1 executable built - 1 Error
DDKBLD: The PREfast logfile is "PREfast_defects_chk_wlh_x86.xml"!
DDKBLD: Build complete
DDKBLD: Building browse information files
Build log was saved at "file://g:\WinDDK projects\test2\test2\BuildLog.htm"
test2.WLH - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Ich sehe da "g:\winddk~2\" - wie du vielleicht festgestellt hast, hat DDKBUILD.CMD noch die Parameter korrekt übergeben (grüne Zeile), was aber nix hilft, weil einige der DDK-Tools allergisch gegen Namen mit Leerzeichen sind, weshalb (rote Zeile) die Objektdatei vom Linker nicht gefunden wird. Lösung: umbenennen in einen 8.3-Namen ohne Leerzeichen ;)

Werde es zur DDKWizard-FAQ hinzufügen.

Neotracer64 11. Aug 2007 20:08

Re: DDKWizard - nur was für Faule ;)
 
Ahh Danke.
Wenn ich Pfade ohne Leerzeichen benutze, werden alle Fehler korrekt angezeigt.
Das Witzige war ja: Wenn ich keinen Fehler im Source hatte, hat er alles korrekt kompiliert und gelinkt. Das hat mich etwas verwirrt. ;)
Super tool. Ich bin auch von Natur aus faul. Das kommt sehr gelegen. ;)

Olli 12. Aug 2007 04:33

Re: DDKWizard - nur was für Faule ;)
 
Zitat:

Zitat von Neotracer64
Das Witzige war ja: Wenn ich keinen Fehler im Source hatte, hat er alles korrekt kompiliert und gelinkt. Das hat mich etwas verwirrt. ;)

Das ist ein guter Hinweis. Genau dieses Bausteinchen hatte mir noch gefehlt. Ich hatte nämlich das Problem letztens (auch wegen Fehlern in Source der nicht von mir stammte - nämlich New Blue Pill), daher kannte ich die Lösung, aber nicht das exakte Problem (nämlich daß es nur auftritt, wenn Fehler im Source existieren).

Olli 7. Sep 2007 03:37

Re: DDKWizard - nur was für Faule ;)
 
Neotracer, dieses Problem sollte mit der Version 7.0 RC2 nunmehr komplett behoben sein. Ich habe Mark von OSR auch eine Variante für deren .BAT-Version (6.x) geschickt, da ich denke, daß es besser ist, wenn man sich komplett auf kurze Dateinamen verlegt, da die DDK/WDK-Tools da ... nunja ... etwas stur zu sein scheinen :zwinker: :mrgreen:

Der Trick den ich nun benutze ist, daß ich die Pfade (BASEDIR für den DDK/WDK-Pfad) sowie das Projektverzeichnis in einen kurzen Pfadnamen umwandle (8.3-Namenskonvention). Bekanntermaßen dürfen diese Namen keine Leerzeichen enthalten, was das erste Problem entschärft - und da die langen Dateinamen das zweite Problem waren, wird auch dieses Problem gleich mit erledigt.

Einzig der NT Script-Interpreter mochte mich nicht. Der hat einen Bug, um den ich herumwerkeln mußte, damit diese Methode sauber funktioniert.

Viel Spaß und Erfolg mit der neuen Version.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz