Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.08.2012, 16:02

Fehler in der TriBase.h (neue DirectX SDK Version)

Moin Moin und hallo ;)

Ich habe gerade das Buch "3D-Spiele Programmierung" von David Scherfgen angefangen.
Ich bin gerade im Kapitel "1.4 Wir bauen uns eine eigene Engine", wo die Grundfunktionen der TriBase Engine erklärt werden.

Dazu gibt es folgenden kleine Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Basis Projekt_TriBase.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <TriBase.h>
#include <Windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
    if(tbInit())
    {
        // Fehler
    }
    else
    {
        // Alles korrekt
    }

    return 0;
}


Nun gibt es ein Problem folgende Probleme beim Kompilieren:

\tribase\include\dshowbaseclasses\wxdebug.h(329): error C2146: syntax error : missing ';' before identifier 'm_pString'
\tribase\include\dshowbaseclasses\wxdebug.h(329): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
\include\dshowbaseclasses\wxdebug.h(329): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
\tribase\include\dshowbaseclasses\wxdebug.h(326): error C2065: 'm_pString' : undeclared identifier
\tribase\include\dshowbaseclasses\wxdebug.h(350): error C2065: 'm_pString' : undeclared identifier

In den "VC++ Directories" sind die .lib und .dll Pfade von
DirectX SDK (June 2010)
Microsoft Windows SDK v7.0a
TriBase
eingetragen, sowie Verweise im Linker für TriBase.dll und TriBaseD.dll erstellt worden.

Ein Fehler der vorher bestand wurde behoben indem ich "#include <DXErr9.h>" zu "#include <DXErr.h>" änderte.

Die Fehler beziehen sich auf Folgende Zeilen in der wxdebug.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
class CDispBasic
{
public:
    CDispBasic() { m_pString = m_String; };
    ~CDispBasic();
protected:
    PTCHAR m_pString;  // normally points to m_String... unless too much data
    TCHAR m_String[50];
};


Weis vllt jemand, was der TriBase.h fehlt?

MFG,
Buyknalker.

3

28.08.2012, 16:52

Nun findet die TriBase.h

C-/C++-Quelltext

1
2
3
4
#include <streams.h>
#include <asyncio.h>
#include <asyncrdr.h>
#include <memfile.h>


nicht. Weder in DX noch in Windows sind diese Header zu finden.

Zu Finden sind sie im "Dependencies" Ordner des TriBase Hauptordners

Muss ich wirklich in der neuen Version der "TriBase" die Include und Lib Ordner im Ordner "Dependencies" mit als VC++ Verzeichnis einstellen?
Müssten die nicht in den SDK's vorhanden sein?

MFG,
Buyknalker.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

28.08.2012, 16:58

Müssten die nicht in den SDK's vorhanden sein?

Was genau meinst du damit? Welche Version von Visual Studio verwendest du?

5

28.08.2012, 17:02

2010 Express

Ich meine, dass die Dateien, die die TriBase braucht zum Funktionieren doch eigentlich in der DirectX SDK und Windows SDK enthalten sein (denk ich jetz mal sooo :3)

MFG,
Buyknalker

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

28.08.2012, 17:06

Sehr merkwürdig. Funktionieren die Beispiele denn? Hast du auch sicher die upgedateten Projektdateien aus dem oben verlinkten Thread verwendet?

7

28.08.2012, 17:18

Wenn ich die Beispielprogramme starten will, kommt genau das gleiche Problem, dass die TriBase.h die 4 Headers nicht finden kann.

Die Geupdatete Version der TriBase aus dem Verlinkten Thread benutze ich.

MFG,
Buyknalker.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

28.08.2012, 17:30

Und du hast auch die Pfade zum DirectX SDK entsprechend in den VC++ Directories eingetragen (falls sie das nicht schon sind)?

9

28.08.2012, 18:17

In den "VC++ Directories" sind die .lib und .dll Pfade von
DirectX SDK (June 2010)
Microsoft Windows SDK v7.0a
TriBase
eingetragen, sowie Verweise im Linker für TriBase.dll und TriBaseD.dll erstellt worden.

=P

Weis wer zu welcher SDK die fehlenden Header gehören?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Buyknalker« (28.08.2012, 18:38)


10

29.08.2012, 11:50

Die liegen im Verzeichnis:

Zitat

3D-Spieleprogrammierung-Update\TriBase\Dependencies\Include
Kenne das Problem ;) Hat mich auch ne Stunde beschäftigt :D
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

Werbeanzeige