includeproblem - ich versteh die Welt nimmer...
-
k, bin sicher das ist ein dummes Problem, aber ich komm einfach nicht dahinter:
hatte in einer "functions.h" alle wichtigen Funktionen fuer mein Projekt definiert, darunter auch getFileSize(ifstream&).
Dann hab ich mich entschieden, Deklaration und Implementation zu unterscheiden... also stehen in functions.h nur mehr die Deklarationen, die Implementationen stehen in functions.cpp.
Mein Problem: wenn ich nun kompiliere, bekomme ich folgende Fehler:
unctions.cpp E:\works\code\cpp\blueFileSplitter\functions.cpp(105) : error C2027: Verwendung des undefinierten Typs "basic_ifstream<char,struct std::char_traits<char> >" E:\works\code\cpp\blueFileSplitter\functions.cpp(105) : error C2228: Der linke Teil von '.tellg' muss eine Klasse/Struktur/Union sein E:\works\code\cpp\blueFileSplitter\functions.cpp(106) : error C2027: Verwendung des undefinierten Typs "basic_ifstream<char,struct std::char_traits<char> >" E:\works\code\cpp\blueFileSplitter\functions.cpp(106) : error C2228: Der linke Teil von '.seekg' muss eine Klasse/Struktur/Union sein E:\works\code\cpp\blueFileSplitter\functions.cpp(107) : error C2027: Verwendung des undefinierten Typs "basic_ifstream<char,struct std::char_traits<char> >" E:\works\code\cpp\blueFileSplitter\functions.cpp(107) : error C2228: Der linke Teil von '.tellg' muss eine Klasse/Struktur/Union sein E:\works\code\cpp\blueFileSplitter\functions.cpp(108) : error C2027: Verwendung des undefinierten Typs "basic_ifstream<char,struct std::char_traits<char> >" E:\works\code\cpp\blueFileSplitter\functions.cpp(108) : error C2228: Der linke Teil von '.seekg' muss eine Klasse/Struktur/Union sein Fehler beim Ausführen von cl.exe.
functions.h sieht so aus:
#ifndef blueFileSplitter_FUNCTIONS_H #define blueFileSplitter_FUNCTIONS_H #include <iostream> using namespace std; //... unsigned long getFileSize(ifstream&); // ... #endif
und functions.cpp
#include "functions.h" // ... unsigned long getFileSize(ifstream& File) /******************************************************************************* * calculates the size of a file by comparing a pointer to the beginning of the * file to one from the end of the file * PARAMETER: * &ifstream File: filestream * RETURNS: * filesize in bytes ******************************************************************************/ { unsigned long OldFilePosition = File.tellg(); File.seekg(0, ios::end); unsigned long FileSize = File.tellg(); File.seekg(OldFilePosition); // reset read-pointer return FileSize; } // ...
Als Deklaration und Implementation noch beisammen waren, klappte alles wunderbar
-
include <fstream> vergessen?
-
*hust* *hust*... jetzt komm ich mir dumm vor...
thx