AnsiString in Konsolenanwendung



  • Ich habe im C++ Buider 5 folgendes Problem:

    Ich will eine Konsole schreiben, in der Groß-
    und Kleinschreibung egal sind. Geschrieben
    habe ich folgenden Code,

    #include <iostream.h>
    #include <vcl.h>
    
    void main() {
    
     AnsiString term;
    
     while(term != "exit" && term != "end" && term != "quit") {
      cout << "#: ";
      cin  >> term;
      term = LowerCase(term);
     }
    
    }
    

    der aber diese Fehler liefert, aus denen ich nicht schlau
    werde:

    [Linker Fehler] Unresolved external 'System::__linkproc__ __fastcall LStrClr(System::AnsiString&)' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\RELEASE\VCLE50.LIB|dstring
    [Linker Fehler] Unresolved external 'System::__linkproc__ __fastcall LStrFromPChar(System::AnsiString&, char *)' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\RELEASE\VCLE50.LIB|dstring
    [Linker Fehler] Unresolved external 'System::__linkproc__ __fastcall LStrAsg()' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\RELEASE\VCLE50.LIB|dstring
    [Linker Fehler] Unresolved external '__fastcall Sysutils::LowerCase(const System::AnsiString)' referenced from C:\EIGENE ANWENDUNGEN\PEACEKEAPER ENGINE\MAIN.OBJ
    [Linker Fehler] Unresolved external 'System::__linkproc__ __fastcall LStrCmp()' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\RELEASE\VCLE50.LIB|dstring
    

    PS: Ich habe AnsiString verwendet da LowerCase diesen
    als Parameter benötigt.

    Vielen Dank für eure Hilfe!



  • Hallo,

    Du solltest dein Konsolenprojekt mit Hilfe des Konsolenexperten vom Builder erstellen und da dann das Häkchen "VCL benutzen" setzen.
    Also bei Datei/Neu - Konsolenexperte
    Desweiteren verwende <iostream> anstelle von <iostream.h> sowie int main anstelle von void main. Dein Quelltext ist so nicht standardkonform.

    Ciao



  • Wenn die Zeile

    term = LowerCase(term);
    

    all diese Fehler verursacht, würde das ja heißen, dass LowerCase all die angegebenen Funktionen aufruft!?! was für ein overhead! krass.

    oli



  • Wie kommst du denn darauf?
    Es sind außer LowerCase hier ja noch andere Funktionen beteiligt (Konstruktor, Destruktor, Vergleichsoperator, Streamoperator).


Anmelden zum Antworten