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

Tracert

Treue Seele

  • »Tracert« ist der Autor dieses Themas

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

1

22.07.2003, 15:02

Unaufgelöstes externes Symbol g_hWindow

Hab mal versucht, ein erstes Direct3D-Programm mit TriBase zu schreiben mit Hilfe des Buches. Allerdings erscheint beim Kompilieren immer die oben genannte Fehlermeldung.

Habe die TriBaseD.lib gelinkt, DLL ist im Programmverzeichnis und folgendes ist der Code:

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
#include <windows.h>
#include <tribase.h>
#include <InitWindow.h>
#include <Direct3DEnum.h>
#include <InitDirect3D.h>
#include <Resource.h>

tbResult Render (float fNumSecsPassed)
{
    return TB_OK;
}

tbResult Move(float fNumSecsPassed)
{
    return TB_OK;
}

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   char* pcCmdLine,
                   int iShowCmd)
{
    SDirect3DParameters Direct3DParameters;
    tbResult            Result;

    tbInit();

    Result = GetDirect3DParameters(&Direct3DParameters);
    if (Result == TB_CANCELED)
    {
        tbExit();
        return 0;
    }

    InitWindow(Direct3DParameters.VideoMode.Width,
        Direct3DParameters.VideoMode.Height,
        "TestFenster",
        LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION)));
    InitDirect3D(&Direct3DParameters, g_hWindow);
    tbDoMessageLoop(Render, Move);
    ExitDirect3D();
    ExitWindow();
    tbExit();
    return 0;
}


Ist bestimmt irgendwo ein peinlicher kleiner Fehler, aber wenn mir mal trotzdem jemand unter die Arme greifen könnte wäre das echt nett...

Hab auch gleichzeitig das erste mal in VC++.net gearbeitet, vorher hatte ich nur VC++ 6. Also mag es auch daran liegen, dass ich mich noch nicht so damit auskenne.

Na ja, ich danke schonmal!
TR

2

22.07.2003, 15:19

Hast du die D3D-Libs gelinkt?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

22.07.2003, 16:26

Das hat nichts mit den D3D-Libs zu tun.
Du verwendest ja die Funktionen InitWindow und InitDirect3D. Die sind in den Dateien InitWindow.cpp und InitDirect3D.cpp im Ordner Beispiele\Allgemeines implementiert. Darum musst Du diese beiden CPP-Dateien dann auch zu Deinem Projekt hinzufügen.
Ebenso noch Direct3DEnum.cpp und Allgemeines.rc.

Schau halt, wie ich es im Projekt von den Beispielprogrammen aus Kapitel 2 gemacht habe. Wenn Du erstmal Kapitel 3 durch hast - erst dann wirst Du richtig mit der Engine arbeiten können. Dann brauchst Du das ganze "Allgemeines"-Zeugs nicht mehr.

Tracert

Treue Seele

  • »Tracert« ist der Autor dieses Themas

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

4

22.07.2003, 16:45

Danke für die schnelle Antwort!

OK, war wohl etwas zu früh um gleich so praktisch damit zu arbeiten. Da immer mal wieder Codes im Buch kommen bin ich mir bisher nicht sicher gewesen, ab wo es denn nun eigentlich mit der praktischen Arbeit losgeht und hab dann einfach was gemacht. ;D

Ich lese also erstmal noch etwas weiter...


Bis dann!
TR

Werbeanzeige