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

01.07.2006, 12:57

TriBase Engine einbinden

Hallo Leute,

ich bin im Buch jetzt auf der Seite 38 stehen geblieben (2. Auflage) und versuche die Übungsaufgaben zu lösen.
Dort steht: "Schreiben Sie ein Proramm, das die TriBase Engine initialisiert". Genau das Versuche ich, indem ich folgendes eingetippt habe:

C-/C++-Quelltext

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
#include "TriBase.h"

int WINAPI WinMain(HINSTANCE Instance, HINSTANCE PrevInstance, char* pcCpmmandLine, int iShowCommand)
{
    MSG Message;
    DWORD dwTime1;
    DWORD dwTime2;
    float fTime = 0.0f;

    // Engine Initialisieren //

    tbInit();

    ZeroMemory(&Message, sizeof(MSG));
    while(Message.message != WM_QUIT)
    {
        dwTime1 = timeGetTime();

        while(PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&Message);
            DispatchMessage(&Message);
        }

        dwTime2 = timeGetTime();
        fTime = (float)(dwTime2 - dwTime1) / 1000.0f;
    }

    // Engine Herunterfahren //

    tbExit();

    return 0;
}


Sollte doch eigentlich stimmen, oder? Die Bibliothek habe ich eingebunden, also TriBaseD.lib. Die habe ich von der Download Seite extra für Visual C++ Express 2005 heruntergeladen.

Ich bekomme jedoch folgende Fehler:

Zitat

1>------ Erstellen gestartet: Projekt: proj1, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>Verknüpfen...
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__TranslateMessage@4" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__PeekMessageA@20" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__timeGetTime@0" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DispatchMessageA@4" in Funktion "_WinMain@16".
1>C:\Dokumente und Einstellungen\Dima\Eigene Dateien\Visual Studio 2005\Projects\proj1\Debug\proj1.exe : fatal error LNK1120: 4 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Dima\Eigene Dateien\Visual Studio 2005\Projects\proj1\proj1\Debug\BuildLog.htm" gespeichert.
1>proj1 - 5 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Vielleicht kann mit jemand helfen?! Danke :)

Liebe Grüße,
Dima ;)

Phili

unregistriert

2

01.07.2006, 13:05

Sieht aus als hättest du einige Libs vergessen, z.b. WinMM.lib

3

01.07.2006, 13:08

Jetzt sind es nur noch 4 Fehlermeldungen! Ich habe jetzt nur 2 Libraries drin, TriBaseD.lib und WinMM.lib. Aber vielleicht habe ich das Projekt falsch erstellt? Ich habe keine Win32 Anwendung gefunden, also habe ich "Leeres Projekt" ausgewählt. Weil Win32 Konsole wäre wohl ganz falsch.

Liebe Grüße,
Dima

Ok, nachdem ich noch "User32.lib" eingebunden habe, kommen keine Fehler beim kompilieren oder erstellen. Aber er findet d3dx9d_30.dll nicht. Ich suche mal bei google!

So, ich habe nur wenig gefunden, scheint so als ob die Datei mit DirectX 10 gelifert wird, was jedoch nicht erschien ist! Weißt jemand weiter?

Phili

unregistriert

4

01.07.2006, 13:30

@Dima

Kann nicht irgendwie sein, das du kein Plattform-SDK hast? Sonst müsste nämlich eigentlich ne Windows-Anwendung da sein. Hast du das neueste DX_SDK?

Sheddex

unregistriert

5

01.07.2006, 13:33

Hast du eigentlich nix da's Tutorial gelesen?

6

01.07.2006, 13:33

Ich habe das DX_SDK installiert was auf der CD war.

Also das DX SDK Ordner hat den Namen: Microsoft DirectX 9.0 SDK (Summer 2004)
Und Plattform SDK hat den Namen: Microsoft Platform SDK for Windows Server 2003 R2

Ich nehme an es gibt bereits ein neues SDK. Ich begebe mich auf die Suche!

Liebe Grüße,
Dima

Sheddex

unregistriert

7

01.07.2006, 13:37

Das Platform SDK ist was anderes als das DirectX SDK ;)
Im Tutorial ist alles beschrieben.

Phili

unregistriert

8

01.07.2006, 13:42

Aber ich glaum das mit der d3dx9d_30.dll liegt am veralteten DX SDK. Lad dir mal das neueste runter!

9

01.07.2006, 13:48

Zitat von »"DarkHunter"«

Das Platform SDK ist was anderes als das DirectX SDK ;)
Im Tutorial ist alles beschrieben.


Ja, ich habe doch auch 2 verschiedene Ordner aufgelistet. Das eine ist DX das andere ist die Plattform!

@Phili: Danke, ich lads runter!

Hier der Link zum SDK was ich herunterlade: http://www.microsoft.com/downloads/details.aspx?FamilyId=1FD20DF1-DEC6-47D0-8BEF-10E266DFDAB8&displaylang=en
Scheint ganz neu zu sein!

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

10

01.07.2006, 14:06

nur so am rande: du musst keine eigene message loop bauen, das geht mit der tribase funktion tbDoMessageLoop

Werbeanzeige