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

chrisslfissl

Treue Seele

  • »chrisslfissl« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Bavaria

  • Private Nachricht senden

1

13.06.2011, 15:04

Listing 11.5 ERROR "Nicht aufgelöstes externes Symbol"

Heyho,
ich habe ein Problem im Listing 11.5.
Ich habe schon alles durchgeschaut und finde den Fehler einfach nicht.
Wäre nett wenn ihr mir helfen könntet.

Programmcode:

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// C++ für Spieleprogrammierer
// Listing 11.5
// Der this-Zeiger im Einsatz
//
#include <iostream>

using namespace std;

// Vorwärtsdeklaration
class CWerft;

// Klassen
//

// Klasse für einen kleinen Jäger
//
class CJaeger
{
public:
    CJaeger ();
    void Andocken (CWerft *pWerft);

};

// Klasse für eine große Raumschiffswerft
//
class CWerft
{
public:
    CWerft (string sName);
    ~CWerft ();
    void ZeigeName ();

private:
    CJaeger *m_pBewacher;
    string m_sName;

};


// Definition der Memberfunktionen von CJaeger
//

// Konstruktor
//
CJaeger::CJaeger ()
{
    cout << "Neuer Jaeger ersrtellt" << endl;

} // Konstruktor

// Andocken
//
void CJaeger::Andocken (CWerft *pWerft)
{
    cout << "Jaeger dockt an" << endl;
    cout << "Die Zielwerft ist: ";

    // Name der Zielwerft anzeigen lassen
    pWerft->ZeigeName ();
    cout << endl;

} // Andocken


// Definition der Memberfunktionen von CWerft
//

// Konstruktor
//
CWerft::CWerft (string sName)
{
    cout << "Neue Schiffswerft erstellt" << endl;

    // Name merken
    m_sName = sName;

    // Neuen Jäger erstellen und diesen zum
    // eigenen Schutz andocken lassen
    m_pBewacher = new CJaeger ();
    m_pBewacher->Andocken (this);

} // Konstruktor

// Destruktor
//
CWerft::~CWerft ()
{
    if (m_pBewacher != NULL)
    {
        delete (m_pBewacher);
        m_pBewacher = NULL;
    }

} // Destruktor


// ZeigeName
//
void CWerft::ZeigeName ()
{
    cout << m_sName.c_str () << endl;

} // ZeigeName

// Hauptprogramm
//
int main ()
{
    // Eine neue Werft erstellen. Es wird
    // automatisch ein Jaeger erzeugt und
    // als Bewacher für die Werft eingeteilt
    CWerft ("Werft 01");

    return (0);
}


Fehler:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
1>------ Erstellen gestartet: Projekt: Listing 11.5, Konfiguration: Debug Win32 ------
1>Der Buildvorgang wurde am 13.06.2011 14:56:20 gestartet.
1>InitializeBuildStatus:
1>  Aktualisieren des Timestamps von "Debug\Listing 11.5.unsuccessfulbuild".
1>ManifestResourceCompile:
1>  Alle Ausgaben sind aktuell.
1>LINK : error LNK2001: Nicht aufgelöstes externes Symbol "_mainCRTStartup".
1>C:\Users\Christian\Desktop\C++ für Spieleprogrammierer\Listing 11.5\Debug\Listing 11.5.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>
1>Fehler beim Erstellen
1>
1>Verstrichene Zeit 00:00:00.26
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Wäre nett, wenn ihr mir helfen könntet ;)

Ich könnte wetten dass der Fehler ganz leicht zu finden ist und direkt vor meiner Nase liegt ;D


MfG
Chris

Oberon

Treue Seele

Beiträge: 181

Wohnort: Österreich

Beruf: Student

  • Private Nachricht senden

2

13.06.2011, 15:12

Der Fehler liegt nicht im Quellcode sondern (wahrscheinlich) in deiner Konfiguration. Wenn du Microsoft Visual C++ Express 2010 verwendest, solltest du überprüfen, ob unter Projekt->Eigenschaften->Linker->System die Einstellung Subsystem auf Konsole eingestellt ist.
Weiteres suchen lohnt sich aber nicht; wenn es das nicht war, mach einfach ein neues Win32-Konsolen-Projekt, setze beim Assistenten den Haken bei "Leeres Projekt"und füge die Datei hinzu.

chrisslfissl

Treue Seele

  • »chrisslfissl« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Bavaria

  • Private Nachricht senden

3

13.06.2011, 15:20

Okay danke für die schnelle hilfe.
Ich habe jetzt das Projekt nochmal ganz gelöscht, habe es neu angelegt
und den Quellcode nochmal eingefügt.
Und oh wunder...
Es funktioniert ;D

Danke nochmal :)

Nettes und sauberes Forum, nette User und schnelle hilfe.

MfG
Chris

Werbeanzeige