Wie libcurl richtig benutzen ?



  • Ach ja, VS kann ja kein C99.



  • konj schrieb:

    https://stackoverflow.com/questions/9903582/error-c2275-illegal-use-of-this-type-as-an-expression

    In .cpp umbenennen oder die zweite Zeile in der main nach oben verschieben.

    Das funktioniert, nur bekomme ich komischerweise jetzt wieder Probleme mit dem Linker:

    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_global_cleanup" in Funktion "_main".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_easy_cleanup" in Funktion "_main".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_easy_perform" in Funktion "_main".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_easy_setopt" in Funktion "_main".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_easy_init" in Funktion "_main".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_global_init" in Funktion "_main".
    1>C:\Temp\libcurl_Test\Debug\libcurl_Test.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.



  • Wo liegt denn die "libcurl_a.lib"? Evtl. noch den Pfad dazu angeben (oder in den Linker-Einstellungen).



  • Th69 schrieb:

    Wo liegt denn die "libcurl_a.lib"? Evtl. noch den Pfad dazu angeben (oder in den Linker-Einstellungen).

    Diese liegt ebenfalls unter:
    C:\libcurl\lib

    Den Pfad habe ich aber bereits unter "Bibliotheksverzeichnisse" hinzugefügt.



  • Funktioniert es denn, wenn du den Pfad direkt beim #pragma comment hinzufügst?
    Oder erhältst du eine Warnung (evtl. Warn-Level erhöhen)?



  • Th69 schrieb:

    Funktioniert es denn, wenn du den Pfad direkt beim #pragma comment hinzufügst?
    Oder erhältst du eine Warnung (evtl. Warn-Level erhöhen)?

    Ironischerweise, nein.
    Beim Build der lib hat er mir keine Fehler gebracht.
    Ich habe es gefühl ich werde noch doof, wollte mir nur mal paar Sachen mit libcurl anschauen und nun bin ich schon Stunden damit beschäftigt



  • Du musst in den Projekteinstellungen CURL_STATICLIB definieren, wenn du diese Bibliothek statisch linken möchtest (Project->Properties->C/C++->Preprocessor->Preprocessor Definitions und dort eben CURL_STATICLIB; einfügen).



  • yahendrik schrieb:

    Du musst in den Projekteinstellungen CURL_STATICLIB definieren, wenn du diese Bibliothek statisch linken möchtest (Project->Properties->C/C++->Preprocessor->Preprocessor Definitions und dort eben CURL_STATICLIB; einfügen).

    Genau das hat alles behoben !
    Vielen Dank !



  • Leider muss ich das Thema nochmal pushen.
    Also mit Libcurl ansich funktioniert nun alles!
    Wenn ich aber mit den Libcurl Funktionen in Verbindung mit _beginthreadex() arbeiten will, bekomme ich Fehler beim erstellen.
    Mir ist bekannt das ich für _beginthreadex() die Laufzeitbibliothek auf "Multithreaded" setzen muss.
    Das habe ich getan und bekomme nun beim erstellen ganz viele Fehler vom Linker.

    Kann ich libcurl etwas nicht in Verbindung mit _beginthreadex() nutzen ?



  • Dieses Problem tritt aber nur auf wenn mein Projekt im Debugmodus ist.
    Release funktioniert alles.