www.codeworx.org/directx_tuts/Pre DirectX Tutorial: Teil 5 - Compilereinstellungen

Pre DirectX Tutorial: Teil 5 - Compilereinstellungen

Heya und Hallo zum 5. Teil

Heute werden wir uns eingehend mit dem Compiler auseinandersetzen. Um ein DirectX Programm zu compilieren genügt es leider nicht immer die ganzen Includes etc. einzubinden, sondern man muß etwas umsichtiger zu Werke gehen.

Ich werde beschreiben wie ihr ein neues Projekt erschafft, die DirectX Dateien einbindet und schließlich eure Programme compiliert und zwar erst mit dem Microsoft Visual C++ 6, dann Borland C++ 5 und schließlich Borland C++ Builder 4. Wenn ihr einen anderen Compiler nutzt: keine Panik - da wird es so ähnlich funktionieren und wenn ihr nicht zurecht kommt könnt ihr mir immer noch mailen.

Microsoft Visual C++ 6

Ich gehe davon aus ihr habt ein DirectX SDK auf eurem Rechner installiert. Alles über Version 5 ist O.K. Des weiteren habt ihr den Microsoft Visual C++ 6 (oder eine Version davon) auf eurem Rechner installiert. Außerdem solltet ihr wissen wie man mit dem Dateimanager umgeht ;)

Bevor ihr den VC++ Compiler startet müsst ihr noch eine Kleinigkeit erledigen. In dem /include/ Verzeichnis eures Compilers liegen nämlich schon die Header Dateien von DirectX. Dummerweise aber die von DirectX 3, also völlig veraltete. Wenn ihr nun in eurem Projekt neuere Header angebt, so würde VC++ trotzdem die alten nehmen. Nerv!

Also habt ihr 2 Möglichkeiten. Die erste ist: ihr kopiert einfach den Inhalt des /include/ Verzeichnisses eures DirectX SDKs in das /include/ Verzeichnis eures Compilers. Das hat den Vorteil: kein Gefummel, ihr überschreibt einfach den alten Müll, hat aber den Nachteil - ihr könnt nicht mehrere DX SDKs parallel nutzen.

Die zweite Möglichkeit ist, das ihr die ganzen alte DX Header löscht. Ihr schaut in eurem SDK nach welche Header es alles gibt und sucht diese im include Verzeichnis des Compilers (Meißtens C:\VC\INCLUDE\). Alternative: Zieht euch hier eine Batch Datei, die ihr in euer Include Verzeichnis kopiert und aufruft. Diese löscht dann alle alten Dateien.

Jetzt gehts los - startet VC++. Dann geht ihr in der Menüleiste auf "File/ New". Jetzt öffnet sich eine Dialog Box. Links wählt ihr als Zielplattform "Win32 Application" aus. Gebt einen Namen und Verzeichnis für euer Projakt ein und klickt auf O.K. Nun öffnet sich der Application Wizard. Sagt ihm, er soll "An emtpy Project" erzeugen, klickt auf "Finish" und bestätigt. Jetzt habt ihr ein neues Projekt vor euch.

Als erstes geht ihr auf "Project/ Add to Project/ New". In der Dialog Box klickt ihr auf "C++ Source File", gebt einen Namen ein und bestätigt. Daraufhin habt ihr jetzt die C++ Datei vor euch in der euer Code reingehört.

Nun geht ihr auf "Project/ Add to Project/ Files...". Daraufhin öffnet sich ein Dateifenster. Als Dateityp wählt ihr "Library Files (LIB)" aus. Dann geht in euer DX SDK Verzeichnis in /LIB/ und klickt auf "DDRAW.LIB" und danach auf O.K. Das gleiche Spiel macht ihr für die "DXGUID.LIB".

Nun müssen wir VC++ nur noch klar machen, wo sich das DX SDK befindet. Dazu gehen wir in "Tools/ Options". In der Dialog Box wählen wir den Reiter "Directories" aus. Jetzt klickt auf die unterste (leere) Zeile und fürgt das /INCLUDE/ Verzeichnis eures SDKs hinzu. Fertig.

Borland C++ 5

Ich gehe davon aus ihr habt ein DirectX SDK auf eurem Rechner installiert. Alles über Version 5 ist O.K. Des weiteren habt ihr den Borland C++ 5 (oder eine Version davon) auf eurem Rechner installiert. Außerdem solltet ihr wissen wie man mit dem Dateimanager umgeht ;)

Bevor ihr den Borland C++ Compiler startet müsst ihr noch eine Kleinigkeit erledigen. In dem /include/ Verzeichnis eures Compilers liegen nämlich schon die Header Dateien von DirectX. Dummerweise aber die von DirectX 3, also völlig veraltete. Wenn ihr nun in eurem Projekt neuere Header angebt, so würde Borland C++ trotzdem die alten nehmen. Nerv!

Also habt ihr 2 Möglichkeiten. Die erste ist: ihr kopiert einfach den Inhalt des /include/ Verzeichnisses eures DirectX SDKs in das /include/ Verzeichnis eures Compilers. Das hat den Vorteil: kein Gefummel, ihr überschreibt einfach den alten Müll, hat aber den Nachteil - ihr könnt nicht mehrere DX SDKs parallel nutzen.

Die zweite Möglichkeit ist, das ihr die ganzen alte DX Header löscht. Ihr schaut in eurem SDK nach welche Header es alles gibt und sucht diese im include Verzeichnis des Compilers (Meißtens C:\BC5\INCLUDE\). Alternative: Zieht euch hier eine Batch Datei, die ihr in euer Include Verzeichnis kopiert und aufruft. Diese löscht dann alle alten Dateien.

Jetzt seid ihr soweit das ihr den Compiler starten könnt. Ihr öffnet als erstes ein neues Projekt: Datei/ Neu/ Projekt.... In der Dialog Box gebt ihr erst das Verzeichnis und den Namen ein. Der Zieltyp ist Anwendung. Die Umgebung Win32 und das Zielmodell GUI. Nun auf O.K. klicken und das Projekt sollte sich öffnen.

Auf der rechten Seite seht ihr nun ein Fenster mit den eingebundenen Dateien. Standard für ein neues Projekt ist eine .CPP, eine .DEF und eine .RC Datei mit dem Namen eures Projektes. Die .DEF und die .RC könnt ihr löschen (anwählen und "Entf" auf der Tastatur drücken). Statt dessen bindet ihr die grundlegenden DirectX Dateien ein. Dazu klickt ihr erst mit der linken Maustaste ganz oben im Projektfenster auf den Namen eurer Projekt.EXE und dann mit der rechten Maustaste in das Projektfenster und wählt "Knoten hinzufügen" aus. Nun öffnet sich ein Dateifenster zum auswählen der Datei. Als Dateityp wählt ihr "Bibliotheken (*.lib)" aus und geht in das Verzeichnis eures DirectX SDKs. Dort wählt ihr unter /lib/Borland/ die Datei "DDRAW.LIB" aus. Achtet darauf das ihr nicht in dem /LIB/, sondern in dem /LIB/BORLAND/ Verzeichnis seid!!! Das gleiche Spiel macht ihr noch einmal für die LIB namens "DXGUID.LIB".

Soweit dazu. Jetzt geht ihr in der Menüleiste auf "Optionen/ Projekt". Daraufhin öffnet sich wieder eine Dialog Box. Ganz oben im Auswahlfenster seht ihr den Punkt "Verzeichnisse". Wählt diesen aus und nun seht ihr rechts die "Quelltextverzeichnisse". Hier fügt ihr nun unter Include das Verzeichnis eures DX SDKs hinzu (Bsp: c:\bc5\include;e:\mtcode\dx5sdk\include). In die Bibliothek Zeile kommt das Verzeichnis eurer DX SDK Libs (aber Vorsicht! Auch hier wieder das Borland Verzeichnis nehmen!!!). (Bsp: c:\bc5\lib; e:\mtcode\dx5sdk\lib\borland). Jetzt auf O.K.

Das wars eigentlich schon, was ihr für ein grundlegendes DirectX Programm benötigt. Jetzt könnt ihr im Projektfenster auf die Projektname.CPP doppelklicken und anfangen den Code reinzuhacken.

Borland C++ Builder 4

Ich gehe davon aus ihr habt ein DirectX SDK auf eurem Rechner installiert. Alles über Version 5 ist O.K. Des weiteren habt ihr den Borland C++ Builder 4 (oder eine Version davon) auf eurem Rechner installiert. Außerdem solltet ihr wissen wie man mit dem Dateimanager umgeht ;)

Bevor ihr den Borland C++ Compiler startet müsst ihr noch eine Kleinigkeit erledigen. In dem /include/ Verzeichnis eures Compilers liegen nämlich schon die Header Dateien von DirectX. Dummerweise aber die von DirectX 3 , also völlig veraltete. Wenn ihr nun in eurem Projekt neuere Header angebt, so würde der Builder trotzdem die alten nehmen. Nerv!

Also habt ihr 2 Möglichkeiten. Die erste ist: ihr kopiert einfach den Inhalt des /include/ Verzeichnisses eures DirectX SDKs in das /include/ Verzeichnis eures Compilers. Das hat den Vorteil: kein Gefummel, ihr überschreibt einfach den alten Müll, hat aber den Nachteil - ihr könnt nicht mehrere DX SDKs parallel nutzen.

Die zweite Möglichkeit ist, das ihr die ganzen alte DX Header löscht. Ihr schaut in eurem SDK nach welche Header es alles gibt und sucht diese im include Verzeichnis des Compilers (Meißtens C:\BCB\INCLUDE\). Alternative: Zieht euch hier eine Batch Datei, die ihr in euer Include Verzeichnis kopiert und aufruft. Diese löscht dann alle alten Dateien.

Jetzt könnt ihr den Builder starten. Nun öffnen wir ein neues Projekt. Untersteht euch aber ein normales Builder Projekt mit Forms und dem ganzen anderen "Müll" zu erstellen. Mal ehrlich - diese Art von Doppelklickprogrammierung ruft bei mir Grauen hervor. Wer will schon ernsthaft das der Compiler einem in seinem Code herumpfuscht? Also der Builder weckt bei mir Alpträume. Egal, kommen wir zum Thema: geht auf "Datei/ Neu" und klickt in der Dialog Box auf "Konsolen Experte". Wählt als Ziel "Window (GUI)". Ausführungstyp .EXE und KEINE VCL! Fertig stellen.

Jetzt habt ihr ein leeres Projekt vor euch. Ihr geht jetzt auf "Projekt/ Optionen". In der Dialogbox klickt ihr auf den Reiter "Verzeichnisse/ Bedingungen". Nun klickt ihr auf die Punkte neben dem Include Pfad und setzt den Pfad zu dem /INCLUDE/ Verzeichnis von eurem DirectX SDK. Selbiges macht ihr für den Bibliothekspfad. Aber hier beachten das ihr nicht das /LIB/ Verzeichnis eures SDKs nehmt, sondern /LIB/BORLAND/ !

Verlaßt die Dialog Box und geht in "Projekt/ Dem Projekt hinzufügen". Als Dateityp wählt ihr "Bibliothek (.lib)" aus und wechselt in euer SDK. Dort wählt ihr aus dem /LIB/ BORLAND/ Verzeichnis die Dateien "DDRAW.LIB" und "DXGUID.LIB" aus.

Wars das? Nicht ganz. Dummerweise gibt es noch eine andere Besonderheit beim Builder. Ihr müsst eine Sache zusätzlich einbinden und zwar bevor ihr die DirectX Header einfügt:


#if defined( __BORLANDC__ ) && defined( __WIN32__ )
#define _WIN32
#endif


Danach könnt ihr euren restlichen Code einfügen.

...

Ihr seht das Prinzip ist immer gleich: erst evtl vorhandene, alte DX Dateien entfernen und anschließend ein neues Projekt öffnen. Den Weg zu dem SDK festlegen, die Libs einbinden, fertig. Dann können wir uns ja jetzt dem Spaß widmen und das bisher gelernte endlich zu einem DirectX Programm zusammenfügen.

Delax
[delax@sundancerinc.de]