unresolved external ... warum ?



  • hallo leute

    in folgendem code tritt der fehler auf:

    /* h-file */
    class WatchFiles
    {
       private:
          std::vector<WatchFilesData> file_list;
          std::vector<std::string> directories;
    
          unsigned int FillDirectories(std::vector<WatchFilesData> &t_vec);
          unsigned int SearchForDirectory(const std::string &dir);
    
       public:
          WatchFiles(void);
          WatchFiles(const char *buf);
          ~WatchFiles(void);
    
          WatchFilesData& operator[](unsigned int t_pos) { return file_list[t_pos]; }
    
          unsigned int ReadFromBuffer(const char *buf);
          unsigned int WriteToBuffer(char *buf);
          unsigned int StreamSize(void);
          unsigned int FilesCount(void) { return file_list.size(); }
          unsigned int DirectoryCount(void) {return directories.size(); }
          std::string& Directory(unsigned int t_pos) { return directories[t_pos]; }
          unsigned int CheckDirList(void) { return FillDirectories(file_list); }
          unsigned int AddNewFile(const char *t_filename, const WIN32_FIND_DATA &t_data);
    };
    
    /* cpp-file */
    
    ...
    
    unsigned int WatchFiles::AddNewFile(const char *t_filename, const WIN32_FIND_DATA &t_data)
    {
       unsigned int t_count = file_list.size();
       file_list.push_back();
    
       file_list[t_count].filename = t_filename;
       file_list[t_count].filesize = (t_data.nFileSizeHigh * (0xFFFFFFFF + 1)) + t_data.nFileSizeLow;
       file_list[t_count].filetime = (t_data.ftLastWriteTime.dwHighDateTime * (0xFFFFFFFF + 1)) +
                                      t_data.ftLastWriteTime.dwLowDateTime;
    
       return file_list.size();
    }
    
    ...
    

    der rest funktioniert. nur wenn ich auf den AddNewFile member zugreifen will gibt es die fehlermeldung vom linker

    sieht jemand den fehler ?

    Meep Meep



  • Hast du auch die .cpp im Projekt drin und die .h in der Datei eingebunden in der du die Klasse benutzen willst?



  • re

    ja hab ich alles eingebunden cpp-file uns header. ueberall wo ich sie brauche.
    deshalb hab ich auch geschrieben:

    der rest funktioniert. nur wenn ich auf den AddNewFile member zugreifen will gibt es die fehlermeldung vom linker

    mit dem rest, meinte ich die anderen memberfunktionen usw.

    Meep Meep



  • Zeig doch mal den Teil wo du die Methode aufrufst, und den genauen Fehler



  • re

    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
       open_dialog->Execute();
       WIN32_FIND_DATA t_data;
    
       if(open_dialog->FileName != "")
       {
          txl::GetFileData(open_dialog->FileName.c_str(), t_data);
    
          unsigned int x = watch_field->Count;
          bool found = false;
    
          for(unsigned int i = 0;i < x;++i)
          {
             if(watch_field->Items[i].Text == open_dialog->FileName)
                found = true;
          }
    
          if(!found)
          {
             watch_files.AddNewFile(open_dialog->FileName.c_str(), t_data);
             //watch_files.CheckDirList(); //(1)
             watch_field->AddItem(open_dialog->FileName,0);
             watch_files.StreamSize();
          }
       }
    }
    

    fehlermeldung

    [Linker Fehler] Unresolved external 'WatchFiles::AddNewFile(const char *, const _WIN32_FIND_DATAA&)' referenced from D:\SOURCECODES\NETSYNC\EINSTELLUNGEN.OBJ
    

    mit (1) hatte ich getestet, ob die anderen members aufgerufen werden konnten.
    bis auf AddNewFile funktioniert alles

    Meep Meep


Anmelden zum Antworten