FindFirst Hilfe



  • Folgendes Problem, ich versuche in einem Programm die Funktion FindFirst zu verwenden, Quellcode habe ich im Internet gefunden, weil meiner nicht tat:

    #include <stdio.h>
    #include <dir.h>
    
    /* File attribute definitions */
    
    #define NORMAL      0x00
    #define READONLY    0x01
    #define HIDDEN      0x02
    #define SYSTEM      0x04
    #define VOLLABEL    0x08
    #define DIR         0x10
    #define ARCHIVE     0x20
    
    int main()
    {
        struct ffblk fblock;           /* Create file info block */
    
        if( findfirst("*.*",&fblock,NORMAL) != 0 )
        {
            puts("Oops! Some kind of error!");
            return 1;
        }
        printf("I have found the file %s\n",fblock.ff_name);
        printf("It is %d bytes in size.\n",fblock.ff_fsize);
    
        return 0;
    }
    

    Das Programm müsste meiner Ansicht nach laufen, tut es aber nicht. Folgende Fehler treten dabei auf:

    [Linker Fehler] Unresolved external '__InitVCL' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

    [Linker Fehler] Unresolved external '__ExitVCL' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

    Danach hab ich den Quelltext aus der Borlandhilfe genommen und den probiert.

    #include <stdio.h>
    #include <dir.h>
    
    int main(void)
    {
       struct ffblk ffblk;
       int done;
       printf("Directory listing of *.*\n");
       done = findfirst("*.*",&ffblk,0);
       while (!done) 
       {
          printf("  %s\n", ffblk.ff_name);
          done = findnext(&ffblk);
       }
    
       return 0;
    }
    

    Da kamen allerdings die gleichen Fehler. Was stimmt dabei nicht, bitte helft mir.

    Edit:
    Bitte die Code-Tags verwenden.



  • Beim Erstellen des Konsolenprojektes den Haken bei "VCL verwenden" entfernen.

    Tip am Rande: Denk bei Gelegenheit mal über den Unterschied zwischen FindFirst und findfirst nach.



  • Danke, werds gleich mal probieren.
    Zum "Tip am Rande": Gibts da nen Unterschied?



  • Das scheint irgendwie nicht so recht zu klappen. Gibts es da noch ne alternative Möglichkeit?



  • Was heißt, "scheint nicht zu klappen"?

    Ansonsten vieleicht mal mit WinAPI?
    FindFirstFile();
    FindNextFile();
    FindClose();

    Das hat bei mir bisher (fast) immer geklappt!



  • 😃


Anmelden zum Antworten