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

Anonymous

unregistriert

1

12.11.2008, 11:02

char in Parameterliste (glub ich)

Hallo,
Ich schreibe grade ein Zahlenraten-Programm, wo man auch einen Spielernamen hat. Nun ist es aber so, dass ich nicht weiß ob das "char" der fehler in meiner Parameterliste macht. Da kommen einfach so zwei Fehler:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1>------ Neues Erstellen gestartet: Projekt: Zahlenraten, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "Zahlenraten" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>Hauptmenü.cpp
1>Spielen.cpp
1>Timer.cpp
1>Code wird generiert...
1>Manifest in Ressourcen wird kompiliert...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Verknüpfen...
1>Hauptmenü.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""int __cdecl Spielen(char *,double,double,double,double &)" (?Spielen@@YAHPADNNNAAN@Z)" in Funktion "_main".
1>C:\Users\Luca\Documents\Visual Studio 2008\Projects\Zahlenraten\Debug\Zahlenraten.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Users\Luca\Documents\Visual Studio 2008\Projects\Zahlenraten\Zahlenraten\Debug\BuildLog.htm" gespeichert.
1>Zahlenraten - 2 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========



Ich glaube da ist der char in der Parameterliste dran Schuld!
Hier mal mein ganzer Code:

Hauptmenü.cpp:

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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// Projekt: Zahlenraten

// Organisation: nicEPRO

//

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include "Timer.hpp"
#include "Spielen.hpp"

using namespace std;
#pragma comment (lib, "winmm.lib")
// Funktionen

int Optionen (double Auswahl, char *Spielername, double &VorherigePunkte);

int main ()
{
    // Hintergrundfarbe: "Weiß"

    // Schriftfarbe    : "Schwarz"

    //

    system ("color 0F");

    // Zufallsgenerator initialisieren

    srand (timeGetTime ());

    // Variablen

    //

    char Spielername[100];
    double Auswahl = 0;
    int Zufallszahl;
    double Punkte = 1000;
    double VorherigePunkte = 0;
    int Lebensenergie = 1000;
    double Gesamtpunkte = 0;

    // Zufallszahl dem Zufall überlassen

    Zufallszahl = (rand ()%100000)+1;

    // Wie heisst der Spieler im Spiel?

    cout << "Spielername: ";
    cin.get (Spielername, 99);
    cin.ignore ();
    system ("cls");

    // Programm vor Absturz bewahren

    if (!cin.good ())
    {
        cin.clear ();
        cin.ignore ();
    }

    // while-Schleife

    while (Auswahl != 4)
    {
        cout << "ZAHLENRATEN" << endl;
        cout << "~~~~~~~~~~~" << endl;
        cout << "1) Spielen" << endl;
        cout << "2) Highscore" << endl;
        cout << "3) Optionen" << endl;
        cout << "4) Beenden" << endl;
        cout << "~~~~" << endl;
        cout << "Deine Wahl: ";
        cin >> Auswahl;
        system ("cls");

        // Spielen?

        if (Auswahl == 1)
        {
            Spielen (Spielername, Auswahl, Zufallszahl, Punkte, VorherigePunkte);
        }

        // Highscore?

        else if (Auswahl == 2)
        {
            Gesamtpunkte = Lebensenergie + VorherigePunkte;
            cout << "HIGHSCORE" << endl;
            cout << "~~~~~~~~~" << endl;
            cout << "Lebensenergie: " << Lebensenergie << endl;
            cout << "Punkte       : " << VorherigePunkte << endl;
            cout << "Gesamtpunkte : " << Gesamtpunkte << endl;
            cout << "~~~~~~~~~" << endl;

            // Zeit angeben

            //

            for (int t=5; t>0; t--)
            {
                Zeit (1000);
            }

            system ("cls");
        }

        // Optionen?

        else if (Auswahl == 3)
        {
            Optionen (Auswahl, Spielername, VorherigePunkte);
        }

        // Beenden?

        else if (Auswahl == 4)
        {
            system ("cls");
        }

        // Ansonsten erscheinteinn Felermeldung

        else
        {
            if (!cin.good ())
            {
                cin.clear ();
                cin.ignore ();
            }

            // Fehlermeldung

            cout << "Fehler: Falsche Eingabe." << endl;

            for (int t=3; t>0; t--)
            {
                Zeit (1000);
            }

            system ("cls");
        }
    } // while


    return 0;
}

int Optionen (double Auswahl, char *Spielername, double &VorherigePunkte)
{
    system ("cls");
    return 0;
}


Spielen.hpp

C-/C++-Quelltext

1
2
#include <iostream>
int Spielen (char *Spielername, double Auswahl, double Zufallszahl, double Punkte, double &VorherigePunkte);


Spielen.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "Spielen.hpp"
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include "Timer.hpp"

using namespace std;
#pragma comment (lib, "winmm.lib")

int Spielen (char *Spielername, double Auswahl, int Zufallszahl, double Punkte, double &VorherigePunkte)
{
    system ("cls");
    return 0;
}

Mordrak

1x Contest-Sieger

Beiträge: 121

Wohnort: München

Beruf: Junior IT Consultant

  • Private Nachricht senden

2

12.11.2008, 11:51

Re: char in Parameterliste (glub ich)

Ahoi,

Schau Dir einmal genau die Parameterlisten von Spielen() in Deiner .hpp und .cpp an. Und nun eine Minute überlegen, was genau bei Deinem Aufruf passiert:

C-/C++-Quelltext

1
Spielen (Spielername, Auswahl, Zufallszahl, Punkte, VorherigePunkte); 

Welche Typen haben Deine Variablen? Wo gibt es implizite Umwandlungen? Warum?

Weitere mögliche Fragen, die Du Dir stellen könntest:
- Ist es sinnvoll, für eine zahlenbasierte Menüauswahl ein Double zu nehmen?
- Hast Du noch vor, Lebensenergie irgendwo zu verwenden? Ich hätte irgendwie erwartet, daß das in Spielen(...) irgendwie verwurschtelt wird.
- Wie könnte man sonst die ganzen Infos an Spielen() weiterreichen?

Grüße,
Mordrak
What's yellow and equivalent to the axiom of choice? The Lemmon of Zorn!

Anonymous

unregistriert

3

12.11.2008, 11:57

Sy, ich weiß nicht weiter.

Mordrak

1x Contest-Sieger

Beiträge: 121

Wohnort: München

Beruf: Junior IT Consultant

  • Private Nachricht senden

4

12.11.2008, 12:11

Ne, also das ging zu schnell.

Nimm Dir ggfs. einfach mal ein Blatt Papier und einen Stift, und schreib' die Parameterlisten auf (.hpp, .cpp, Unterschiede?). Dann schreib´ Dir auf, mit was für Variablentypen Du Spielen() in Deiner main() aufrufst. Und brüte darüber, was der Compiler damit anfangen wird...

Grüße,
Mordrak
What's yellow and equivalent to the axiom of choice? The Lemmon of Zorn!

Anonymous

unregistriert

5

12.11.2008, 12:41

Zitat von »"Mordrak"«

Ne, also das ging zu schnell.

Nimm Dir ggfs. einfach mal ein Blatt Papier und einen Stift, und schreib' die Parameterlisten auf (.hpp, .cpp, Unterschiede?). Dann schreib´ Dir auf, mit was für Variablentypen Du Spielen() in Deiner main() aufrufst. Und brüte darüber, was der Compiler damit anfangen wird...

Grüße,
Mordrak



Das habe ich jetzt gemacht, und komm imemr och nicht weiter.

6

12.11.2008, 12:47

Verwechselst du int mit double, dann gibt es meistens trouble... ;)

Anonymous

unregistriert

7

12.11.2008, 12:48

Zitat von »"TrikkieMikkie"«

Verwechselst du int mit double, dann gibt es meistens trouble... ;)


Ich habe mit Abssicht ein double erstellt.
Daran kann ja jetzt nicht der fehler liegen.

8

12.11.2008, 12:52

Ach nee?
Dann such mal fleißig weiter.
Mordrak hat schon alles Nötige dazu gesagt...

Anonymous

unregistriert

9

12.11.2008, 13:21

Re: char in Parameterliste (glub ich)

Zitat von »"Mordrak"«

Ahoi,

- Wie könnte man sonst die ganzen Infos an Spielen() weiterreichen?

Grüße,
Mordrak


Natürlich mit nem

C-/C++-Quelltext

1
std::string Spielername;
Doch ich will einen char! Ich komm ernsthaft nicht weiter. Ich bin jetzt schon so weit gegangen, dass ich das Buch von Heiko KALISTA neu angefangen habe!!

Anonymous

unregistriert

10

12.11.2008, 13:22

Re: char in Parameterliste (glub ich)

Zitat von »"Spiri"«

Zitat von »"Mordrak"«

Ahoi,

- Wie könnte man sonst die ganzen Infos an Spielen() weiterreichen?

Grüße,
Mordrak


Natürlich mit einer globalen Variable oder mit nem

C-/C++-Quelltext

1
std::string Spielername;
Doch ich will einen char! Ich komm ernsthaft nicht weiter. Ich bin jetzt schon so weit gegangen, dass ich das Buch von Heiko KALISTA neu angefangen habe!!

Werbeanzeige