[C++] Fehlersuche

06/27/2010 14:38 Chaosduckman#1
GELÖST

Quote:
Musste VC++ neu installieren. Hatte wohl doch einen Fehler mit dem Compiler.
Huhu :P
Bei mir ist der Wurm drin. Kann mir einer sagen was ich falsch mache? xD
Quote:
Originally Posted by main.cpp
#include <iostream>

#include "Module\F_Error.cpp" //Pfad ist richtig

int main()
{
INIT_Error_Log();

return 0;
}
Quote:
Originally Posted by F_Error.cpp
int INIT_Error_Log()
{
std::cout << "Test" << std::endl;

return 0;
}
Quote:
Originally Posted by Compiler
1>------ Erstellen gestartet: Projekt: Login System, Konfiguration: Debug Win32 ------
1> main.cpp
1> F_Error.h
1>c:\chaos productions\gamespace\login system\module\f_error.h(3): error C2039: 'cout': Ist kein Element von 'std'
1>c:\chaos productions\gamespace\login system\module\f_error.h(3): error C2065: 'cout': nichtdeklarierter Bezeichner
1>c:\chaos productions\gamespace\login system\module\f_error.h(3): error C2039: 'endl': Ist kein Element von 'std'
1>c:\chaos productions\gamespace\login system\module\f_error.h(3): error C2065: 'endl': nichtdeklarierter Bezeichner
1> Code wird generiert...
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Ich finde den Fehler einfach nicht.
Da ist doch keiner o.O Vielleicht ist Microsoft nur ein bisschen Gaga. (Benutze VC++ 2010)

So weit ich das lesen kann wird f_error.h nicht in main.cpp includiert, aber Pfad ist zu 100% richtig...
06/27/2010 14:45 nkkk#2
hmm vermutlich fehlen incules in F_Error.h
06/27/2010 14:46 Chaosduckman#3
Ja diese Fehlen, aber da ich ja den Code in main.cpp einbinde und dort iostream includiert ist, ist das nicht der Fehler.
06/27/2010 14:49 Akorn#4
Ich kann es mit gcc 4.4.3 unter linux kompilieren und das pogramm funktioniert dann auch, habe lediglich das "Module" beim pfad zum header weggelassen da ich beide datein im selben ordner gespeichert habe. Sonst aber habe ich nichts verändert.
06/27/2010 14:51 Chaosduckman#5
Mhhh, dann ist Module ein "Schlüsselordner" oder was?! xD
Ich versuche es mal geschwind ohne Module^^


Edit:
Es hat nicht funktioniert. Habe den Ordner in "Blubb" umbenannt. Das sollte kein Schlüssel sein xD
Auch wenn ich die Datei aus dem Ordner hole, bekomme ich die Errors.
Vielleicht habe ich einen kaputten compiler?!
06/27/2010 15:00 Akorn#6
Ich merke gerade das ich oder meine IDE F_Error.cpp in F_Error.h umbennant hat und diese auch als F_Error.h includiert hat. Vieleicht liegt es ja daran das es bei mir funktioniert.

EDIT: Also anscheinend iegt esdaran wen ich F_Error als Cpp datei schreibe und enbinde dan gibt mein kompiler ebenfalls die fehler aus wen ich sie stattdessen als header einbinde gibt eskeine probleme.
06/27/2010 15:16 Chaosduckman#7
Ne, das sollte keinen Unterschied machen. Er hat es bei dir nur umbenannt, da es eingentlich nicht zum guten Stiel gehört .cpp zu Includen^^
Dazu ein Auszug aus meinem schlauen Buch :P
Quote:
...Methodendefinitonen, die außerhalb der Klasse stehen, sollten aber ebenso wie Definitionen normaler Funktionen (oder auch Variablendefinitionen) nicht über #include eingebunden werden.
Warum nicht?
Typdefinitionen (hierzu gehören auch Klassendefinitionen), Methoden- und Funktionsdeklarationen (Angabe der Methoden-/Funktionssignatur ohne nachfolgenden Anweisungsblock) oder auch reine Variablendeklarationen (Variablendeklarationen, denen das Schlüsselwort extern vorangestellt ist) sind lediglich Informationsquellen für den Compiler, die ihm bei der Übersetzung des Programms helfen. Trifft der Compiler dagegen auf Methoden-/Funktions- oder Variablendefinitionen (jede Variablendeklaration ohne das Schlüsselwort extern ist eine Variablendefinition), erzeugt er eine entsprechende Methode, Funktion oder Variable im Speicher. Aus diesem Grund darf jedes Element (Methode, Funktion oder Variable) nur einmal im ganzen Programm definiert werden - sonst würde es im Programm ja zwei Elemente gleichen Namens geben.
Kurz um, du könntest ausversehen verschiedene Variablen mit dem selben Namen erstellen, was zu Fehlern kommen würde. Geht zwar auch mit Headern aber das ist halt wieder eine dieser Regeln xD

So habe es nun:
Musste VC++ neu installieren. Hatte wohl doch einen Fehler mit dem Compiler.
Kann geclosed werden.
06/29/2010 00:15 djpromo#8
#closed