[MSVC++6] Linker Error, nicht deklarierter Bezeichner

Bigbutcher

Erfahrenes Mitglied
Moin Moin allerseits,

Ich hab' da ein kleines Problem mit meiner IDE und dem Linker.
Mein kleines Logprogramm soll mit der String Klasse arbeiten, aber sobald ich ein string Objekt erstelle, mekkert der Linker rum. Der Compiler zeicht mir 0 Fehler und 0 Warnungen an.
Die String.h wurde in der LogFile.hpp included und diese wiederrum wurde in der LogFile.cpp eingebunden.

Hier der Quelltext:

Code:
#ifndef __LOGFILE_HPP__
#define __LOGFILE_HPP__

#include <fstream.h>
#include <string.h>

class LogFile
{
	public:
				LogFile	(char* dateiname);
				~LogFile();
				void	WriteToLogFile (char* text);
				char*	ReadLogFile ();
				char*	ReadGlobalLogFile ();
				void	WriteToGlobalLogFile (char* text);
	private:
				char*	dateipfad;
		static	      LogFile	globallogfile;
				char	globallog[18];
};

#endif

und
(hier hab ich mich nur auf die Methode beschränkt)

Code:
/*
Funktion:		ReadLogFile
Parameter:		keine
Beschreibung:	Liest die Datei aus und übergibt diese
*/
char* LogFile::ReadLogFile()
{
	string str; // Hier mekkert der Linker rum
	int loop = 0;
	char zeichen;
	char *text;
	ifstream datei;
	datei.open(this->dateipfad, ios::in);
	if (datei)
	{
		while (!datei.eof())
		{
			datei.get(zeichen);
			text[loop] = zeichen;
			loop++;
		}
		text[loop] = '\0';
		datei.close();
	}
	else
		cerr << "Datei konnte nicht geoeffnet werden!\n" << endl;

	datei.close();

	return text;
}

Der Code der Methode ist noch in der Entwicklung und enthält noch viele Fehler, will das ganze auf Strings umstellen.

Naja und das Ergebnis ist diese Meldung:

Code:
--------------------Konfiguration: main - Win32 Debug--------------------
Kompilierung läuft...
LogFile.cpp
C:\Dokumente und Einstellungen\Administrator\Desktop\ComPort\LogFile.cpp(68) : error C2065: 'string' : nichtdeklarierter Bezeichner
C:\Dokumente und Einstellungen\Administrator\Desktop\ComPort\LogFile.cpp(68) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'str'
C:\Dokumente und Einstellungen\Administrator\Desktop\ComPort\LogFile.cpp(68) : error C2065: 'str' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

main.exe - 3 Fehler, 0 Warnung(en)

Ein ähnliches Problem hab ich auch noch bei einem anderen Projekt, das betrifft die process.h und die _beginthread Funktion....

Ich hoffe ihr könnt mir helfen

CYA

BB
 
Die string-Klasse findest du in der Headerdatei <string> (nicht <string.h>). Und sie befindet sich im namespace std. Du kannst sie also nach Inkludierung von <string> entweder mit std::string str; ansprechen oder du verwendest ein using std::string; ; dann kannst du das std weglassen. Verzichte übrigens am besten ganz auf die string.h und die fstream.h. Das erste brauchst du nicht mehr, und das zweite ist inkompatibel zur aktuellen Implementierung, die du mit der <fstream> bekommst.
 
Danke Kachelator!
Das mit dem Namespace funktioniert soweit bestens!

Aber wenn ich fstream.h in fstream abändere, dann spuckt mir der Linker auch wieder Fehler bezüglich der nicht deklarierten Bezeichner aus.
Mit .h ist das kein Problem.
Aber anscheinend kann man das Problem, ähnlich wie bei den Strings mit std:: lösen.

Korrigier mich bitte wenn ich da falsch liege ^^

Danke euch beiden für die schnelle und kompetente Hilfe

MfG

BB
 
Ich hab den Quelltext jetzt soweit optimiert und auf jede Endung mit .h verzichtet.

Jetzt funktioniert alles einwandfrei ^^

MfG

BB
 

Neue Beiträge

Zurück