Indy9 ,UTF-8 und die Funktion URLEncode unter BCB2007



  • Hallo, ich habe in einer C++ Datei folgenden Code verwendet:

    #include <IdURI.hpp>
    ...
    TIdURI* uri = new TIdURI(0); 
    AnsiString Text = uri->URLDecode(__classid(TIdURI), "ads"); 
    delete uri;
    

    Ich lasse dieses Code mit Indy9 Teilen compilieren und bekomme folgende Fehler:

    [ILINK32 Error] Error: Unresolved external '__fastcall Iduri::TIdURI::TIdURI(const System::AnsiString)' referenced from C:\UNIT1.OBJ
    [ILINK32 Error] Error: Unresolved external 'Iduri::TIdURI::' referenced from C:\UNIT1.OBJ
    [ILINK32 Error] Error: Unresolved external '__fastcall Iduri::TIdURI::URLDecode(System::TMetaClass *, System::AnsiString)' referenced from C:\UNIT1.OBJ

    Was genau mache ich falsch??
    Muss ich irgendwas im Linker einstellen oder habe ich vergessen irgendwelche Dateien anzugeben?

    Lib: (BDS)\\lib\\debug;(BDS)\lib\indy9
    Include: (BDS)\\include;(BDS)\include\dinkumware;(BDS)\\include\\vcl;(BDS)\include\indy9

    MfG
    TheCaleb



  • Hallo,

    Keine Ahnung. Ich habe die Zeilen bei mir mal in ein leeres Projekt eingefügt und hatte keine Probleme damit.
    Evtl. ist bei dir Indy nicht richtig installiert.
    Schau mal in deine bpr ob da folgendes bei <PackageImports> steht
    IndyProtocols.bpi



  • Hallo,

    bei mir ist die dclIndyProtocols100.bpl eingebunden.
    Oder meine ich damit was anderes?



  • Ja, das ist etwas anderes. Das scheint ein DesignTime-Package zu sein. Füg einfach mal die von mir erwähnte bpi dort ein.



  • Vielen Dank aber kann URLDecode keine Zeichen, wie Ä Ö Ü usw??
    Also kann URLDecode nicht Zeichen wie " %C3%BC " =ü decoden?



  • Bei mir kommt bei %C3 Ä heraus.



  • Bei %C3 kommt ein A mit einer ~ (Tilde) drüber raus und bei %BC 1/4 aber es müsste zusammen ein ü ergeben. Soweit ich es weiß müsste das nach UTF- 8 Schreibweise so sein, bin mir aber nicht sicher.

    Wie kann ich das mit der Funktion URLDecode auflösen??

    Noch ein Problem: Wenn ich die Funktion URLEndoce mit folgenden Code aufrufe:

    uri->URLEncode(__classid(TIdURI),"xxx");
    

    Bekomme ich diese Fehlermeldung:

    Erste Gelegenheit für Exception bei $7C815DEA. Exception-Klasse EIdURIException mit Meldung 'Protocol field is empty'. Prozess ***.exe (608)



  • An dieser Stelle bitte ich nochmals um Hilfe, zu meinen oberen Beitrag, da ich nicht weiter komme!

    Thx


Anmelden zum Antworten