DirectoryExists = Unresolved external ???



  • Hallo, ich schon wieder.

    [Linker Fehler] Unresolved external '__fastcall Filectrl::DirectoryExists(const System::AnsiString)' referenced from D:\ZM_DATA\SRC\BCB5\BMCONV\CONVERSION.OBJ

    Muß ich vielleicht bei den Linkeroptionen was spezielles einstellen?



  • Code?



  • Ja? 😕



  • Code beliebig.

    Es geht ja nur um die Funktion, die er wohl in irgendwelchen Packages haben sollte, aber anscheinend nicht findet.

    Also z.B. neue Anwendung machen, schnell einen Button reinsetzen, und dann diesen Code zum Testen ...

    #include <Filectrl.hpp>
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        DirectoryExists( "c:\\windows" );
    }
    

    ... und beim Erzeugen der Exe bekomme ich den erwähnten Fehler.



  • Ich bin übrigens nicht der Scherzkeks von 16:39 Uhr.



  • Filectrl.hpp als letztes Include einbinden.



  • Hallo Jansen,

    ich denke, wenn mit dem include was faul wäre, dann bekäme ich eine Fehlermeldung schon vom Compiler in dieser Form ...

    [C++ Fehler] Unit1.cpp(21): E2268 Aufruf der undefinierten Funktion 'DirectoryExists'

    Ich habe aber eine Fehlermeldung vom Linker.

    Das include ist das letzte, da ich's direkt vor die Funktion geschrieben hab, hier mal die ganze Unit, ist die zum Testen, da ist weiter nix drin ...

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    #include <Filectrl.hpp>
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        DirectoryExists( "c:\\windows" );
    }
    //---------------------------------------------------------------------------
    

    Ich habe inzwischen ein altes Project gefunden, wo ich die Funktion schon mal verwendet habe. Das funktioniert. Habe aber noch keine Ahnung, was der Grund sein könnte, daß es bei einem neuen Project nicht geht.



  • Mit dem Denken ist das so'ne Sache, manchmal muss man auch einfach Vertrauen haben. 😉
    Ich präzisiere meine Aussage mal: Filectrl.hpp als letztes Include, aber noch vor "#pragma package(smart_init)" einbinden.

    Bei DirectoryExists kann ich (BCB6) das Problem zwar nicht nachvollziehen, dafür aber bei SelectDirectory. Und dort schafft die Beachtung der o.g. Include-Reihenfolge zuverlässig Abhilfe.



  • also bei mir funzt der code, aber ich mach das mit ner if abfrage:

    if (DirectoryExists("C:\\Windows"));
    


  • Was stellt eigentlich der Modul 'CONVERSION' dar (in der Linkermeldung als OBJ- Datei angegeben.

    Ist das ein eigener Modul? (Dann könnte ein include darin fehlen - von dort wird Funktion referenziert) 😕

    Oder der Modul liegt nicht in den Borland- Pfaden? 😕

    Pruef das 'mal.


Anmelden zum Antworten