Linkerfehler StrToInt()



  • Abend,

    Ich will in meinem ActiveX Controll einen String in integer wandeln.
    (Borland c++ Builder 2006)

    String werte[5];
    werte[3]="123";
    
    int st = StrToInt(werte[3].c_str());
    

    Fehlermeldung: [Linker Fehler] Error: Ungelöste externe 'StrToIntA' referenziert von D:ActiveX.OBJ

    (Wieso verlangt er eigentlich c_str()??beim BCB5 lief das auf ohne..)

    Ohne c_str() kommt:
    [C++ Fehler] ActiveXImpl.cpp(1000): E2034 Konvertierung von 'AnsiString' nach 'const char *' nicht möglich

    In einem anderen (kein ActiveX) Proektfunktioniert StrtoInt bestens...

    Ich hoffe, irgendjemand hat dieses mal eine Idee.

    bye
    Web



  • Hallo

    das c_str() ist schon richtig. Schon alleine daran merkst du, das du nicht IntToStr aus der VCL ausrufst, sondern eine WinAPI/ActiveX-variante mit gleichem Namen. Der Linkerfehler kommt, weil du zwar den Header mit dieser Funktion eingebunden hast, aber die entsprechende lib/obj-Datei fehlt.

    Du kannst den Compiler dazu bringen, die gewohnte VCL-Version zu verwenden indem du einfach die Methode von AnsiString verwendest

    int st = werte[3].ToInt();
    

    bis bald
    akari



  • Uiii, es funktioniert. Vielen dank. Dieses Wochenende hab ich schon unglaublich viel gelernt. (Unter anderem: Finger weg von activeX-Parameterübergabe, wenns nicht nötig ist)

    mfg
    Web


Anmelden zum Antworten