Fragen zum C++ Buch (Kapitel 4....)
-
Hi,
ich bin neu hier und habe mal eine Frage ich bin jetzt ihm C++ Buch 2. Auflage (von Heiko Kalista)
Im Kapitel 4.11hier mal der Code:
// C++ für Spielerprogrammierer
// Listing 4.10
// Verwenden von eigenen .hpp- und .cpp-Dateien
//
#include <iostream>
#include "charakter.hpp"using namespace std;
// Hauptprogramm
//
int main ()
{
// Variablen
//
int Staerke;
float Geschwindigkeit;
int Steigerung;// Abfrage der Werte
cout << "Bisherige Staerke des Charakters: ";
cin >> Staerke;cout << "Bisherige Geschwindigkeit des Charakters: ";
cin >> Geschwindigkeit;cout << "Steigerung in Prozent: ";
cin >> Steigerung;// Neuer Werte berechnen
Staerke = addProzent (Staerke, Steigerung);
Geschwindigkeit = addProzent (Geschwindigkeit, Steigerung);// Ausgabe der neuen Werte
cout << "\nNeue Charakterwerte: " << endl;
cout << "Staerke: " << Staerke << endl;
cout << "Geschwindigkeit: " << Geschwindigkeit << endl;return 0;
}und die 2 Fehler:
Listing.obj : error LNK2001: Nichtaufgeloestes externes Symbol "int __cdecl addProzent(int,int)" (?addProzent@@YAHHH@Z)
Debug/Eigenes Spiel.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
-
Hallo
Steht addProzent den in der Headerdatei "charakter.hpp"?
chrische
-
chrische5 schrieb:
Steht addProzent den in der Headerdatei "charakter.hpp"?
das ist ein linkerfehler. er muss die .cpp datei, die 'addProzent()' enthält, ins projekt mit aufnehmen oder die funktion oben mit reinkopieren...
-
Hallo
net schrieb:
chrische5 schrieb:
Steht addProzent den in der Headerdatei "charakter.hpp"?
das ist ein linkerfehler. er muss die .cpp datei, die 'addProzent()' enthält, ins projekt mit aufnehmen oder die funktion oben mit reinkopieren...
So weit war ich auch schon. Ich wollte nur fragen und Ihn dann daruf hinweisen, dass er eventuell vergessen hat charakter.cpp hinzuzufügen.
chrische
-
Ja ok dann nur noch die Frage wie ich etwas einem Projekt hinzufüge?
-
Hallo
- Datei ins Verzeichnis des Projektes kopieren
- auf Projekt im Menü klicken
- auf exisitierendes Item hinzufügen klicken
- Datei auswählenchrische
-
Hier mal ein Bild davon
ich habe Microsoft Visual C++ 6.0
-
oh hat nicht geklappt dann eben noch ein Versuch
http://img333.imageshack.us/img333/267/programmierseite0wt.th.png
-
Anakin schrieb:
ich habe Microsoft Visual C++ 6.0
rechte mousetaste auf'm treecontrol der projektansicht(dateien) -> dateien zu projekt hinzufügen -> click -> fileopen-dialog erscheint -> datei anklicken (doppelt) -> fertig
-
Hallo
Vielleicht solltest du dir überlegen, ob du dir Visual 2005 holst. das ist kostenlos und nun wirklich aktueller.
Hast du denn nun die datei hinzugefügt? wahrscheinlich lief das bi 6.0 noch anders. Da kann ich dir nicht helfen. Vielleicht mal bei datei schauen.
chrische
-
hab ich gemacht hier die Antwort die darauf kommt
Eine oder mehrere Dateien konnten dem angegebenen Projekt nicht hinzugefügt werden.
Diese Dateien sind bereits im Projekt vorhanden:
C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Listing.cppwenn ihr wollt kann ich euch nochmal die aktuellen Fehler auflisten hier:
--------------------Konfiguration: Eigenes Spiel - Win32 Debug--------------------
Kompilierung läuft...
charakter.cpp
Linker-Vorgang läuft...
Listing.obj : error LNK2001: Nichtaufgeloestes externes Symbol "int __cdecl addProzent(int,int)" (?addProzent@@YAHHH@Z)
Debug/Eigenes Spiel.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.Eigenes Spiel.exe - 2 Fehler, 0 Warnung(en)
-
Kann ich dann dem Buch noch folgen mit der 2005er Version?
-
du musst die funktion 'addProzent' erstmal lokalisieren. irgendwo muss sie ja sein und dann rein ins projekt damit
-
Hallo
Anakin schrieb:
Kann ich dann dem Buch noch folgen mit der 2005er Version?
Aber klar. Warum auch nicht?
chrische
-
so
ich hab es mit 6.0 schon etwas weiter geschafft aber wieder neuer Fehler und diesmal auch eine Warnung:--------------------Konfiguration: Eigenes Spiel - Win32 Debug--------------------
Kompilierung läuft...
charakter.cpp
Listing.cpp
c:\programme\microsoft visual studio\myprojects\listing 1_1\eigenes spiel\charakter.hpp(1) : warning C4182: Die #include-Verschachtelungsebene ist 362 tief; Endlosschleife moeglich
c:\programme\microsoft visual studio\myprojects\listing 1_1\eigenes spiel\charakter.hpp(1) : fatal error C1076: Compiler-Beschraenkung: Interne Heap-Grenze erreicht; Verwenden Sie /Zm, um eine hoehere Grenze anzugeben
Fehler beim Ausführen von cl.exe.Eigenes Spiel.exe - 1 Fehler, 1 Warnung(en)
-
zeig ma die ersten paar zeilen von charakter.hpp
-
Inkludiert character.hpp sich selber? In jedem Fall solltest du dir Include-Guards angewöhnen:
#ifndef CHARACTER_HPP // Am besten immer der Dateiname #define CHARACTER_HPP /// Eigentlicher Header #endif
-
Hallo
.filmor schrieb:
Inkludiert character.hpp sich selber? In jedem Fall solltest du dir Include-Guards angewöhnen:
#ifndef CHARACTER_HPP // Am besten immer der Dateiname #define CHARACTER_HPP /// Eigentlicher Header #endifIst das besser als
#pragma once??
chrische
-
Zumindest Mirkosoft-unabhängig.
-
hier die ersten zeilen von charakter.hpp
#include "charakter.hpp"
// addProzent (für Integer-Werte)
//
int addProzent (int Wert, int Prozent)
{
int neuerWert;
neuerWert = Wert + (Wert*Prozent)/100;
return neuerWert;
}// addProzent (für Float-Werte)
//
float addProzent (float Wert, int Prozent)
{
float neuerWert;
neuerWert = Wert + (Wert*Prozent)/100.0f;
return neuerWert;
}