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

17.12.2012, 00:26

Problem mit aktueller Tribase Engine

Hallo!,

ich habe gerade mit dem Buch "3D-Spieleprogrammierung" begonnen.
Nun ist es so, dass nachdem ich die aktuelle Tribase engine einbeziehen wollte mehrere dateien nicht aufzufinden sind.
Mit aktueller Tribase engine meine ich die aus dem Threat "Alle Projekte aus dem Buch für Visual C++ 2012 und neues DirectX SDK.
Soweit so gut.
Jetzt ist es nun so, dass mir der Compiler bei folgendem Punkt einen Fehler ausgibt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifdef _DEBUG
#define D3D_DEBUG_INFO
#endif

#define DIRECTINPUT_VERSION (0x0800)
#define _CRT_SECURE_NO_DEPRECATE
#pragma warning(disable:4995 4996)
#include <Windows.h>
#include <DShow.h>
#include <StdIO.h>
#include <Sys\Stat.h>
#include <Math.h>
#include <D3D9.h>
#include <D3DX9.h>
#include <DInput.h>
#include <DSound.h>
#include <DXErr.h>
#include <stream.h>
#include <asyncio.h>
#include <asyncrdr.h>
#include <memfile.h>

#ifdef _DEBUG
    #define TB_DLL_HANDLE (GetModuleHandle("TriBaseD.dll"))
#else
    #define TB_DLL_HANDLE (GetModuleHandle("TriBase.dll"))
#endif


Der code ist aus der Datei Tribase.h und bezieht sich auf die letzten vier include anweisungen.
also auf stream.h , asyncio.h , asyncrdr.h und memfile.h

Diese findet der Compiler nicht.

Woran liegts?

stream.h ist glube ich aus dem Platform SDK , wird aber trotz includierung des Platform SDK nciht gefunden.
Zu den anderen drei finde ich auch im Internet keine zugehörigkeit.

Danke für jede Hilfe,

grombo939

2

17.12.2012, 16:26

Schau mal im Ordner "Dependencies/Include" der TriBase-Engine nach ;)
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

3

17.12.2012, 17:05

Oh man, vielen Dank, dass du überhaupt auf so eine dämliche Frage geantwortet hast^^.
Hätte vermutlich einfach mal die readmedatei lesen sollen.
Vielen Dank.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »grombo939« (17.12.2012, 17:16)


4

17.12.2012, 22:48

Ich mache jetzt cniht extra einen neuen Threat auf nur für eine weitere frage also hoffe ich, dass hier noch jemand antwortet:

Und zwar komme ich eifnach nicht weiter diesesmal habe ich auch das readme durchgelesen und alles getan was nötig war um die Tribase engine benutzen zu können.
Aber es gibt ein Problem an folgender stelle:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
typedef CGenericList<CAsyncRequest> CRequestList;

// this class needs a worker thread, but the ones defined in classes\base
// are not suitable (they assume you have one message sent or posted per
// request, whereas here for efficiency we want just to set an event when
// there is work on the queue).
//
// we create CAsyncRequest objects and queue them on m_listWork. The worker
// thread pulls them off, completes them and puts them on m_listDone.
// The events m_evWork and m_evDone are set when the corresponding lists are
// not empty.
//
// Synchronous requests are done on the caller thread. These should be
// synchronised by the caller, but to make sure we hold m_csFile across
// the SetFilePointer/ReadFile code.
//
// Flush by calling BeginFlush. This rejects all further requests (by
// setting m_bFlushing within m_csLists), cancels all requests and moves them
// to the done list, and sets m_evDone to ensure that no WaitForNext operations
// will block. Call EndFlush to cancel this state.
//
// we support unaligned calls to SyncRead. This is done by opening the file
// twice if we are using unbuffered i/o (m_dwAlign > 1).
// !!!fix this to buffer on top of existing file handle?
class CAsyncIo
{

    CCritSec m_csReader;
    CAsyncStream *m_pStream;

    CCritSec m_csLists;      // locks access to the list and events
    BOOL m_bFlushing;        // true if between BeginFlush/EndFlush

    CRequestList m_listWork;
    CRequestList m_listDone;

    CAMEvent m_evWork;      // set when list is not empty
    CAMEvent m_evDone;

    // for correct flush behaviour: all protected by m_csLists
    LONG    m_cItemsOut;    // nr of items not on listDone or listWork
    BOOL    m_bWaiting;     // TRUE if someone waiting for m_evAllDone
    CAMEvent m_evAllDone;   // signal when m_cItemsOut goes to 0 if m_cWaiting


    CAMEvent m_evStop;         // set when thread should exit
    HANDLE m_hThread;

    LONGLONG Size() {
        ASSERT(m_pStream != NULL);
        return m_pStream->Size();
    };


Der Compilter sagt im wesetnliche dass für CGenericList keine Vorlage vorliegt un uch sonst erkennt er ganz viele Datentypen nicht und unterstreicht sie mit roter Farbe.

Besonders in diesem Teil.
Der COde stammt aus asyncio.h.
AUßerdem findet er aus meinem vorigen Problem <stream> immer noch nicht. Ist damit vielleicht <fstream> oder <iostream> gemeint?

Danke für jegliche Antwort,

grombo939

5

17.12.2012, 23:01

Ok Problem gelöst, es war einfach falsdch geschrieben es muss streams.h sein und nciht stream.h. nun ja. Jetzt gibt allerdings einen neuen Compilerfehler:

Tribase.Lib konnt nciht geöffnet werden

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

18.12.2012, 06:45

Dann ist offensichtlich die lib nicht in dem Zusätzlichen Lib Verzeichnis, welches Du angegeben hast.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

7

18.12.2012, 16:07

In meinem Zusätzlichen Bücherverweisen ist drinnen: Tribase/Dependencies/Lib
da ist aber eine Tribase.lib garnicht drinnen. WO findet man die den überhaupt. Das einzige unter dem name was ich finde ist eine TribaseD.lib
Ist das gemeint?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

18.12.2012, 16:08

Mal probiert?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

9

20.12.2012, 22:07

Mein Problem ist gelöst. Ich musste nur ein neues Projekt aufmachen, weil ich die INcludeverzeich nisse und so zu oft umgeschrieben habe und mein Linker "messed up" war.
Danke trotzdem!

Werbeanzeige