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 🙂


Anmelden zum Antworten