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öglichIn 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