Du bist nicht angemeldet.

Werbeanzeige

1

01.11.2010, 21:35

Anleitung: TriBase Engine mit Visual Studio 2010 und aktuellem DirectX SDK

Hey,

es wäre doch schön, wenn du die Lösung, die du gefunden hast, noch hier mitteilst - so kann anderen mit ähnlichen Problemen direkt weitergeholfen werden.
Ich habe mal, nachdem ich die TriBaseEngine unter Windows 7 mit Visual Studio 2010 aufgesetzt habe, die einzelnen Schritte aufgeschrieben. Viele Informationen stammen hier aus dem Forum, es ist also mehr eine Sammlung der Lösungen aus dem Forum für Windows 7 / VS 2010

Anleitung für die Einrichtung der TriBase – Engine in Kombination mit Visual Studio 2010
Getestet unter Windows 7 64 bit & 32 bit

Visual Studio am besten als Administrator ausführen. Dazu Rechtsklick auf den Shortcut → als Administrator ausführen (nicht möglich/nötig unter XP). ACHTUNG: auf diese Weise werden die erstellten DLLs automatisch nach Windows\System32 kopiert (auf eigene Gefahr).

Windows SDK sowie DirectX SDK installieren (runterladen – neueste Version – nicht von der CD aus dem Buch! (zumindest nicht getestet)).

Die Ordner „TriBase“ und „Beispiele“ von der CD aus dem Buch auf die Festplatte kopieren.

TriBase braucht die richtigen Libs (StrmBase.lib), diese „BaseClasses“ müssen allerdings erst kompiliert werden, da veraltet.
  • Dazu das Projekt (TriBase-Verzeichnis)\Include\Debug\BaseClasses.vcproj öffnen und konvertieren (passiert automatisch durch den Dialog).
  • Als nächstes die 3 *.h (include-) und *.lib (Bibiliotheks-) Verzeichnisse vom DirectX SDK, Windows SDK und der TriBase hinzufügen:
[list=1] Wie im Buch beschrieben. Achtung: 32bit Versionen benutzen (x86)!
Include-Verzeichnisse:
(TriBase-Verzeichnis)\Include
(DirectX-SDK-Verzeichnis)\Include\
(Windows-SDK-Verzeichnis)\Include\
Lib-Verzeichnisse:
(TriBase-Verzeichnis)\Lib
(DirectX-SDK-Verzeichnis)\Lib\x86
(Windows-SDK-Verzeichnis)\Libdas richtige Windows-SDK-Verzeichnis ist bei Windows 7 64bit im Standardfall unter „C:\Program Files (x86)\Microsoft SDK\...“
Dazu, damit man nicht jedes Mal die Verzeichnisse neu angeben muss, dieses Tutorial befolgen: http://blog.kalmbach-software.de/de/2010…fad-in-vc-2010/
[/list]
  • Die verlinkten Verzeichnisse werden bei jedem TriBase-basierten Programm benötigt. Anschließend jeweils einmal kompilieren – im Debug- sowie Releasemodus. Zum Entwickeln wird der Debugmodus benutzt.
[list=1] Wahrscheinlich schmeißt Visual Studio hier einen Fehler beim Copybefehl, die Dateinamen sind noch nicht richtig gesetzt. In diesem Fall werden wir sie hardcoden:
[/list] Rechtsklick auf das Projekt → Eigenschaften → Konfigutationseigenschaften → Allgemein → Zielname: „StrmBase“ bei ReleaseVersion und „StrmBaseD“ bei DebugVersion.
Unter Konfigutationseigenschaften → Bibliothekar → Allgemein sollte die Ausgabedatei entsprechend „Release\StrmBase.lib“ bei der ReleaseVersion und „Debug\StrmBaseD.lib“ bei der DebugVersion sein.
  • Nun kompilieren mit Rechtsklick auf BaseClasses → Neu Erstellen.


Die eigentliche TriBase.dll wird jetzt erstellt. Dazu die Datei TriBase 2005.vcproj in „TriBase“ mit Visual Studio 2010 öffnen.
  • Rechtsklick auf das Projekt → Eigenschaften → Konfigurationseigenschaften → Linker → Eingabe → Zusätzliche Eigenschaften: Hier muss „dxerr9.lib“ in „dxerr.lib“ geändert werden.
  • Bei Konfigurationseigenschaften → Allgemein → Zielname „TriBase“ für die ReleaseVersion und „TriBaseD“ für die DebugVersion angeben. Unter Konfigurationseigenschaften → Bibliothekar → Allgemein sollte die Ausgabedatei entsprechend „Release\TriBase.lib“ bei der ReleaseVersion und „Debug\TriBaseD.lib“ bei der DebugVersion sein.
  • TriBase.h öffnen:
DXErr9.h“ zu „DXErr.h“ ändern
#define DXGetErrorString9 DXGetErrorString“ und
„#define DXGetErrorDescription9 DXGetErrorDescription“ hinzufügen
  • Resource.rc öffen:
den „#include "mfc/afxres.h"“ Befehl in „#include “ umändern und das Makro „#define IDC_STATIC -1“ hinzufügen.
  • Rechtsklick auf TriBase → Neu Erstellen!
  • Die entstandene Debug\TriBaseD.dll (Bei DebugVersion) muss entweder in den Ordner Windows\System32 kopiert werden oder in den Ordner des Beispieles, das man grade ausführen will.


Fast geschafft! Jetzt kann man schon eines der Beispiele laden (zugehörige vcproj-Datei öffnen)
Folgende Prozedur muss für jedes Beispiel wiederholt werden:
  • (wie oben) Rechtsklick auf das Projekt → Eigenschaften → Konfigutationseigenschaften → Linker → Eingabe → Zusätzliche Eigenschaften: Hier muss „dxerr9.lib“ in „dxerr.lib“ geändert werden.
  • Resource-Datei des Projektes öffnen:
    (wie oben) den „#include "mfc/afxres.h"“ Befehl in „#include “ umändern und das Makro „#define IDC_STATIC -1“ hinzufügen.
  • Bei Beispielen bei Projekt → Eigenschaften → Konfigutationseigenschaften → Linker →Allgemein → Ausgabedatei statt eines statischen Dateinamens „$(TargetFileName)“ angeben.
  • (Beispiel-Verzeichnis)\Allgemeines\Allgemeines.rc öffnen:
    (wie oben) den „#include "mfc/afxres.h"“ Befehl in „#include “ umändern und das Makro „#define IDC_STATIC -1“ hinzufügen.


Nun sollten die meisten Beispiele ohne Fehler im DebugModus kompilierbar sein!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »max_one« (04.11.2010, 23:02)


2

23.06.2011, 18:12

Bei mir kommen beim Kompilieren von dem StrmBase Projekt immer einige Fehler verschiedenster Art und Weise...
Wäre es vielleicht möglich, die "aktualisierte" TriBase Engine irgendwo hochzuladen, damit sogar Leute wie ich sie verwenden können?

3

23.06.2011, 18:22

Bei mir kommen beim Kompilieren von dem StrmBase Projekt immer einige Fehler verschiedenster Art und Weise...
Wäre es vielleicht möglich, die "aktualisierte" TriBase Engine irgendwo hochzuladen, damit sogar Leute wie ich sie verwenden können?


Wäre cool 8) . Aber ich glaube die ist ein bisschen groß um sie irgendwo hochzuladen...

Grüße :)

EDIT: Wenn man den Ordner mit 7Zip auf "Ultra" packt ist der gesamte Ordner nur ca. 27 MB (!) groß 8o .Wenn jemand Lust hätte, wäre es vielleicht wirklich nicht schlecht die aktuellere Version irgendwo hochzuladen :whistling: .

dot

Supermoderator

Beiträge: 9 834

Wohnort: Graz

  • Private Nachricht senden

4

23.06.2011, 18:32

Wenn dann bräuchte man doch nur die aktualisierten Projektdateien sowie die veränderten Source Files hochzuladen (also .sln und .vcxproj, etc.). Die ganzen temporären Dateien etc. braucht man genausowenig wie die unveränderten Source Files, d.h. das Ganze sollte sich auf ein paar KB beschränken. Allerdings würd ich mal davon ausgehen dass es illegal wäre die Dateien irgendwo hochzuladen und zu veröffentlichen da die entsprechenden Rechte wohl exklusiv beim Verlag des Buches liegen sodass wir eine entsprechende Verlinkung hier vermutlich entfernen müssten. Man könnte sich aber mit dem Verlag in Verbindung setzen und um Erlaubnis fragen. Vor allem wenn man nur die veränderten Dateien und nicht alles hochlädt, sodass die Dateien nur jemandem der das Buch auch wirklich hat was bringen, denk ich dass die wohl eher kaum was dagegebn haben würden. Aber ohne offizielle Erlaubnis geht's halt wohl leider nicht...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (23.06.2011, 18:41)


5

23.06.2011, 18:46

Stimmt, da hast du wohl (leider) Recht.

6

23.06.2011, 18:54

Schade, das wäre bestimmt eine langwierige sache... :(

dot

Supermoderator

Beiträge: 9 834

Wohnort: Graz

  • Private Nachricht senden

7

23.06.2011, 19:32

Prinzipiell find ich es aber gar nicht so schlecht dass man so auch mal gewzungen wird sich mit seinem Buildsystem auseinanderzusetzen, immerhin ist das sehr sehr wichtig und das Buch setzt entsprechenden Kenntnisse ja afaik eigentlich sowieso Voraus...

David Scherfgen

Administrator

Beiträge: 10 356

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

02.07.2011, 11:16

Ich werde (auf den Vorschlag von dot) bald eine aktualisierte Version der Engine, der Beispielprogramme und der Spiele bereitstellen, die mit Visual Studio 2008 und 2010 sowie dem neusten DirectX SDK funktioniert.
Damit der Verlag keine Probleme macht, werde ich das Archiv mit einem Passwort versehen, das dem Buch entnommen ist ;)

dot

Supermoderator

Beiträge: 9 834

Wohnort: Graz

  • Private Nachricht senden

9

02.07.2011, 11:25

Sehr Cool! :thumbsup:

David Scherfgen

Administrator

Beiträge: 10 356

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

04.07.2011, 18:56

Kurzer Zwischenstand:
TriBase-Engine kompiliert bereits mit Visual Studio 2010 und dem DirectX SDK von 2010 (neueres gibt es ja noch nicht), inklusive aller Tools.
Breakanoid und Galactica funktionieren ebenfalls.
Ist ne Menge Handarbeit, aber das bin ich den Lesern wohl schuldig ;)
In den nächsten Tagen wird es so weit sein - es fehlen noch die Unmengen von Beispielprogrammen ...
Ich denke, ich werde dann auch ein Video machen, in dem man sieht, wie man ein neues Projekt mit der Engine anlegt.

Werbeanzeige