Header-Dateien - Funktionen auszulagern > Dev C++5.10 > Ordner Header-Datein im Projektmappen Explorer anklicken =????


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
#1
Funktionen auszulagern> separat schreiben mit Dev C++ 5.11

Aus dem Buch C ++ für Spieleprogrammierer Listing 4.10
Das zugefügte Handbuch, mit zusetzlichen Erlärungen. z.B. Einbinden von Datein für Dev C++ war nicht dabei.


1.Datei
Zuerst schrieb ich den Prototypen/Header-Datei= Funktionen, Parameter unter SterkenSteigern.
mit Dateityp Header files
Es wurde unter SterkenSteigern.h gespeichert, obwohl ich C++ lerne und nicht C!

2.Datei
danach speicherte und benannte ich die Quellcodedatei/Definition= Funktionen, Parameter, Code unter SterkenSteigern.
mit Dateityp C ++ Source files
Es wurde unter SterkenSteigern.cpp gespeichert
In diese schrieb ich in die 1te Zeile #include "SterkenSteigern.hpp"

3. Datei
Zuletzt schrieb ich die normale Seite, mit Code unter int main (), beginnend und die einzige Seite mit #include<iostream> .
2. Zeile "SterkenSteigern.hpp"

Danach kompilierte ich zuerst die 1te dann die 2te und 3te Datei
2. Datei 1 35 C:\Users\Elias\Desktop\computer\cff\SterkenSteigern.cpp [Error] SterkenSteigern.hpp: No such file or directory
3. Datei 2 32 C:\Users\Elias\Desktop\computer\cff\SterkenSteigern-Haupt.cpp [Error] SterkenSteigern.hpp: No such file or directory

Was mache ich Falsch! Mach ich da was Falsch!

In der Erklärung mit Visual Studio 2015 steht : Beim hinzfügen der hpp Datei den Ordner Header-Dateien im Projektmappen- Explorer rechts anklicken.
Ich sehe und finde keinen Projektmappen- Explorer und keinen Ordner Headerdateien.



Oder liegt außschließlich hier der Fehler!
Komme ich mit Dev C++ 5.11 weiter oder soll ich wechseln auf Visual Studio 2015.


Bitte um Hilfe

L.G
 

Jennesta

Erfahrenes Mitglied
#2
Hallo,
kannst du das Problem vielleicht für Leute erklären, die nicht das Buch und das Projekt haben?

Ich vermute einmal, dass deine Header-Datei nicht dem Projekt/Compiler bekannt gemacht wurde. Oder letzter einfach nicht weiß wo diese liegt.
daher glaube ich is das Upgrade erstmal nicht notwendig, denn auch VS2015 muss wissen wo diese liegt.
Aber ohne mehr Wissen kann ich dir leider nicht helfen.

Viele Grüße
Jennesta
 

cwriter

Erfahrenes Mitglied
#3
In diese schrieb ich in die 1te Zeile #include "SterkenSteigern.hpp"
C:\Users\Elias\Desktop\computer\cff\SterkenSteigern.cpp [Error] SterkenSteigern.hpp: No such file or directory
Wenn die Datei als "SterkenSteigern.h" angelegt wurde, musst du sie auch als
C++:
#include "SterkenSteigern.h"
einbinden.
.h / .hpp ist übrigens (dem Compiler) egal :)

In der Erklärung mit Visual Studio 2015 steht : Beim hinzfügen der hpp Datei den Ordner Header-Dateien im Projektmappen- Explorer rechts anklicken.
Ich sehe und finde keinen Projektmappen- Explorer und keinen Ordner Headerdateien.
Hast du VS2015 oder VS2017 installiert? Es gibt keinen Grund, das alte zu nehmen.
Den Projektmappenexplorer solltest du mit CTRL+ALT+L öffnen können (VS17).

Komme ich mit Dev C++ 5.11 weiter oder soll ich wechseln auf Visual Studio 2015.
Ja :)

Du kommst weiter mit Dev-C++, aber der Zustand von Dev-C++ ist ziemlich desolat. Es wird zwar wieder gewartet, hatte aber eine lange Zeit, wo die Entwicklung eingestellt war. Mittlerweile wird es eigentlich nicht mehr verwendet.
VS ist besser, wenn du sowieso auf Windows lernen willst, und wenn du dich nicht mit den Eigenheiten von IDEs herumschlagen willst, geht eigentlich nichts über Makefiles :)

Gruss
cwriter
 
#4
cwriter: Danke für die Antwort: Der Fehler #include "SterkenSteigern.hpp" ist jetzt behoben.

Meine Frage lautet:

Was ist ein Projektmappen-Explorer, und wo ist er in Dev C++.
Brauch ich dazu eine QT Software?


Problem
1te und 2te Datei: Prototyp und Definition: undefined reference to `WinMain'
3te Datei: SterkenSteigern-Haupt.cpp:
[Error] ld returned 1 exit status,
SterkenSteigern-Haupt.cpp:(.text+0xa2): undefined reference to `AtributeErhohen(int, int)'
SterkenSteigern-Haupt.cpp:(.text+0xc2): undefined reference to `AtributeErhohen(float, int)'


An Jennesta:
Ich lerne gerade wie man Quellcode aufteilt, und verbindet. Also wie man Funktionen in den Code einbettet. Ich versteh das so das man durch #include "SterkenSteigern.h" (geschrieben in Datei 2[Definition] und 3[wo ich sie einbetten will]) die Seiten verbindet. Hier geht es um 2 Funktionen, die ich einbetten will: So hab ich die zwei Funktionen geschrieben: Einmal unter SterkenSteigern.h den Prototypen (Datei 1), einmal unter SterkenSteigern.cpp die Definition (Datei 2), und dort will ich sie einbetten: SterkenSteigern-Haupt.cpp (Datei 3)

Wichtig:
"Wie macht man eine Header-Datei dem "Projekt"/Compiler bekannt." Was meinst du mit Projekt: Muss ich es in einem Ordner vereinen???
"Oder letzter einfach nicht weiß wo diese liegt." Wieso sollte der Compiler das nicht wissen?

Wichtig:
Ich habe nur Dev C++ und kein Visual Studio!
Gibt es in Dev C++ einen Projektmappen-Explorer, und wo ist er in Dev C++ und was ist er.
Muss ich eine QT Software herunterladen?
 

cwriter

Erfahrenes Mitglied
#5
Was ist ein Projektmappen-Explorer, und wo ist er in Dev C++.
Der Projektmappenexplorer ("Solution Explorer") ist VS-sprech für eine gefilterte Ansicht deines Projekts. Dev-C++ hat sicher etwas ähnliches.
QT? Du meinst Qt? Nein, das wäre wieder etwas anderes. Aber da du es schon ansprichst: Der QtCreator ist auch eine recht gute IDE, hat aber ein paar Eigenheiten.

"Wie macht man eine Header-Datei dem "Projekt"/Compiler bekannt." Was meinst du mit Projekt: Muss ich es in einem Ordner vereinen???
Öh... Deshalb mag ich diese "Programmierlernbücher" nicht.
Du musst dem Compiler per se nicht sagen, wo er die Header finden soll. Wenn, dann macht es die IDE (oder du sagst der IDE, was sie dem Compiler sagen soll). Ein "Projekt" gibt es als solches in C++ nicht, "Projekte" sind die Umgebungen, die dir die IDEs erstellen. Diese Umgebung ist oft ein Ordner mit Projektdateien drin, worin steht, wie du den Compiler aufgerufen haben willst, welche Dateien dem Compiler übergeben werden sollen usw.
Daher: Wenn du eine neue (Header-) Datei in der IDE erstellst, wird sie direkt dem Projekt hinzugefügt. Generell liegen diese Dateien dann im Projektordner oder einem Unterordner davon.
"Oder letzter einfach nicht weiß wo diese liegt." Wieso sollte der Compiler das nicht wissen?
Weil ein C++ Compiler streng genommen nur Textdateien frisst, auswertet und zu ausführbaren Dateien umwandelt. Er hat kein Gedächtnis, ausser die Working Directory (die includes sind relativ zum aufrufenden Compiler)
Ich habe nur Dev C++ und kein Visual Studio!
Ok, aber das Buch verwendet doch VS? Gibt es einen speziellen Grund, dass du nicht VS verwenden willst? Du kannst natürlich verwenden, was du willst, aber hier verwendet (meines Wissens) keiner mehr Dev-C++, mit den genauen Abläufen wird dir also niemand helfen können.

Gibt es in Dev C++ einen Projektmappen-Explorer, und wo ist er in Dev C++ und was ist er.
1545249159766.png
Das links ("Project" bzw "MyFirstProject") ist der "Projektmappenexplorer"), auch wenn er nicht so heisst. Wenn er bei dir nicht da ist, sollte es im View-Menu ("Ansicht") eine Option dafür geben.

Gruss
cwriter

/EDIT: Ganz dein aktuelles Problem übersehen:
1te und 2te Datei: Prototyp und Definition: undefined reference to `WinMain'
3te Datei: SterkenSteigern-Haupt.cpp:
[Error] ld returned 1 exit status,
SterkenSteigern-Haupt.cpp:(.text+0xa2): undefined reference to `AtributeErhohen(int, int)'
SterkenSteigern-Haupt.cpp:(.text+0xc2): undefined reference to `AtributeErhohen(float, int)'
Du hast wahrscheinlich ein win32-Projekt erstellt, aber eine main() und keine WinMain() angegeben. Dazu hast du entweder nur Deklarationen für "AtributeErhohen" oder Deklarationen mit unterschiedlichen Typen (siehe int, int und float, int als Parameterangaben). Ohne Code wird es schwierig, den Fehler genau anzugeben.
 
#6
Danke für die Tipps
Du hast recht, ich steig um auf Visual Studio.
So bin ich mit den anderen auf einer wellenlänge, wenn ich Fragen habe.
Und kann gleich die Beschreibung im Buch nehmen ohne viel Aufwand.
Ich hab bevor ich das Buch gekauft habe Dev C++ verwendet und wollte das weiterhin,
weil es mir sympatisch ist.

"Wie macht man eine Header-Datei dem "Projekt"/Compiler bekannt."
war eine Frage an Jennesta auf diese Antwort:
"Ich vermute einmal, dass deine Header-Datei nicht dem Projekt/Compiler bekannt gemacht wurde."
Das stand in keinem "Programmierlernbuch"

Das Buch C++ für Spieleprogrammiere 2016 von Heiko Kalista ist das Beste Buch das ich auf den Markt fand, und ich habe mir mindesten 5 der bekanntesten Bücher durchgelesen, keines auser dieses war für Anfänger tadellos!
Bis jetzt brauchte ich keine Hilfe, außer vom Buch, und alles war easy und verständlich. Leider wurde das Zusatzheft nicht mitgeliefert, weshalb ich nun hier schreibe. Jetzt wo ich nach komplett verständlicher Buchanleitung Visual Studio benutze ist alles easy. Jeder Anfänger sollte sich das Buch kaufen.
 
#7
N:)chmals Danke :)
Wie und mit welchen Hilfsmittel hast du dir C++ gelernt. Ich habe gerade die Funktionen gelernt,
jetzt bin ich bei Headerdatein. Habe if and else, switch and case, Schleifen und Bedingungen, Rechnen mit Variblen, string, char, float, int und Konstante und enum, casten und ein wenig Zeiger. Wie hast du das gelernt, und wo könnte ich noch lernen. Ich möchte ein großes Spektrum haben.
 

cwriter

Erfahrenes Mitglied
#8
Wie und mit welchen Hilfsmittel hast du dir C++ gelernt.
Ich habe zuerst C, dann C++ gelernt. C habe ich mithilfe einer Website gelernt, die ich mittlerweile recht ungern verlinke, da sie viele Fehler beinhaltet. Aber ich habe tatsächlich auch mit Dev-C++ begonnen, bin aber nach 1 oder 2 Jahren auf VS umgestiegen, da Dev-C++ Out-of-the-Box viele Probleme hatte.
Ich möchte ein großes Spektrum haben.
Na dann hast du dir die richtige Sprache ausgesucht. C++ ist riesig. Ich würde behaupten, dass niemand den gesamten C++-Standard auswendig kennt (ausser dem Comittee).
Der einzige Tipp, den ich dir geben kann, ist sich nicht frustrieren zu lassen. Und üben, üben, üben.
Du solltest dir auch angewöhnen/anlernen, die Definitionen von Funktionen nachzuschlagen. 90% der Programmierarbeit ist die Recherche.

Gruss
cwriter
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…