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

11.09.2012, 14:59

Fehler beim Kompilieren Beispiel 1.4.7 S 129

Ich hab ein paar probleme mit meinem Quellcode basierend auf dem Beispiel auf Seite 129.

Ich habe die aktuelle Version aus dem Download verwendet. Visual C++ zeigt mir auch keine Fehler an...

Fehlermeldung beim compalieren:

Zitat

1>------ Erstellen gestartet: Projekt: Fenster, Konfiguration: Debug Win32 ------
1> Versuche eine harte Verknuepfung zu erzeugen ...
1> Feste Verknüpfung erstellt für C:\Users\dettmant\Documents\TriBase-Programmierung\Eigene Projekte\Fenster\TriBaseD.dll <<===>> C:\Users\dettmant\Documents\TriBase-Programmierung\TriBase\Bin\TriBaseD.dll
1> OK.
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitDirect3D(void)" (?ExitDirect3D@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)" in Funktion "_WinMain@16".
1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""struct HWND__ * g_hWindow" (?g_hWindow@@3PAUHWND__@@A)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)" in Funktion "_WinMain@16".
1>C:\Users\dettmant\Documents\TriBase-Programmierung\Debug\Fenster.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Zitat

Quelltext:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <Windows.h>
#include <TriBase.h>
#include "../Allgemeines/InitWindow.h"
#include "../Allgemeines/Direct3DEnum.h"
#include "../Allgemeines/InitDirect3D.h"
#include "../Allgemeines/Resource.h"

// ******************************************************************
// Render-Funktion
tbResult Render(float fNumSecsPassed)
{
    return TB_OK;
}

// ******************************************************************
// Move-Funktion
tbResult Move(float fNumSecsPassed)
{
    return TB_OK;
}

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


    // TriBase-Engine initialisieren
    tbInit();

    // Direct3D-Optionen abfragen (vom Benutzer gewählt)
    Result = GetDirect3DParameters(&Direct3DParameters);
    if(Result == TB_ERROR)
    {
        // Es trat ein Fehler auf!
        MessageBox(NULL, "Fehler beim Abzählen!", "Fehler",
                MB_OK | MB_ICONEXCLAMATION);
        tbExit();
        return 1;
    }
    else if(Result == TB_CANCELED)
    {
        // Der Dialog wurde abgebrochen!
        tbExit();
        return 0;
    }

    // Fenster initialisieren. Die Größe hängt vom gewählten
    // Videomodus ab, der in der Parameterstruktur gespeichert ist.
    if(InitWindow(Direct3DParameters.VideoMode.Width,
                Direct3DParameters.VideoMode.Height,
                  "Beispielprogramm Nr. 2: Direct3D-Abzählung",
                  LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1))))
    {
        // Fehler beim Erstellen des Fensters!
        MessageBox(NULL, "Fehler beim Erstellen des Fensters!",
                "Fehler", MB_OK | MB_ICONEXCLAMATION);
        tbExit();
        return 1;
    }

    // Direct3D mit den abgefragten Einstellungen initialisieren
    if(InitDirect3D(&Direct3DParameters,
                    g_hWindow))
    {
        // Fehler!
        MessageBox(g_hWindow, "Fehler beim Initialisieren von Direct3D!",
                "Fehler", MB_OK | MB_ICONEXCLAMATION);
        ExitWindow();
        tbExit();
        return 1;
    }

    // Nachrichtenschleife
    tbDoMessageLoop(Render, Move);

    // Direct3D und Fenster herunterfahren
    ExitDirect3D();
    ExitWindow();

    // Engine herunterfahren
    tbExit();

    return 0;
}

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

11.09.2012, 15:07

Hast du auch die TriBase.lib gelinked?

3

11.09.2012, 15:07

Mit dem Quellcode jetzt nicht gerade, hab nicht mal drüber geguckt, aber die Fehlermeldung bezieht sich auf die Linkertool-Einstellungen.
Du musst die Tribase-Engine auch linken!

MfG
Check

4

11.09.2012, 15:13

Also ich hab die Liesmich vom Herrn Scherfgen in seinem Download genau abgearbeitet. Müsste alles Verlinkt sein.

Kann auch gern mal das ganze Datenpaket hochladen.

5

11.09.2012, 16:01

Zeig lieber einfach nur die gelinkten Libs und die zusätzlichen Bibliotheksverzeichnisse...

MfG
Check

Werbeanzeige