FTP Wininet - Errori

di il
3 risposte

FTP Wininet - Errori

Salve ragazzi,


Dopo aver provato lo stesso progetto in visual basic, volevo anche provare ad implementarlo in C++. Sperimentare e imparare credo siano due cose molto importanti.
Fatta questa premessa, il progetto riguarda la possibilità di caricare o scaricare file mediante un ftp client da un server NAS. Cercando online, ho trovato diverse librerie ma quella più usata è la wininet e così ho provato ad implementarla. Il problema sorge quando vado a compilare il progetto.
Infatti, come output ottengo il seguente:
C:\Users\CM\Desktop\CPP\main.o	main.cpp:(.text+0x35): undefined reference to `__imp_InternetOpenA'
C:\Users\CM\Desktop\CPP\main.o	main.cpp:(.text+0xc4): undefined reference to `__imp_FtpPutFileA'
C:\Users\CM\Desktop\CPP\main.o	main.cpp:(.text+0x82): undefined reference to `__imp_InternetConnectA'
C:\Users\CM\Desktop\CPP\main.o	main.cpp:(.text+0xe4): undefined reference to `__imp_InternetCloseHandle'
C:\Users\CM\Desktop\CPP\main.o	main.cpp:(.text+0xf4): undefined reference to `__imp_InternetCloseHandle'
C:\Users\CM\Desktop\CPP\\collect2.exe	[Error] ld returned 1 exit status
C:\Users\CM\Desktop\CPP\Makefile.win	recipe for target 'Progetto1.exe' failedrecipe for target 'Progetto1.exe' failed

Cercando di risolverlo, tra i suggerimenti davano quello di inserire "#pragma comment(lib, "Wininet.lib")" nel codice e cosa che ho fatto, così come mettere in parametri, alla voce "linker", la libreria scaricata e usata. Inutile dirvi che non ho risolto un bel niente.
Uso Dev C++ , per chi volesse saperlo.
https://pastebin.com/MsJeXa8K

Grazie mille per coloro i quali mi aiuteranno,
Carmelo

3 Risposte

  • Re: FTP Wininet - Errori

    Quella linea #pragma funziona su Visual C++ (Microsoft) non su DevC++ e mingv.

    Devi impostare la libreria nella voce linker ma non la dll bensì la .lib o la .a
  • Re: FTP Wininet - Errori

    oregon ha scritto:


    Quella linea #pragma funziona su Visual C++ (Microsoft) non su DevC++ e mingv.

    Devi impostare la libreria nella voce linker ma non la dll bensì la .lib o la .a
    Ciao oregon, grazie per aver risposto. Appreso ciò, quella riga la cancello subito data la sua inutilità. Per la seconda parte della risposta ti confermo che ho aggiunto la libreria e quindi la wininet.lib nella voce linker tra "opzioni del progetto". Almeno che la libreria non abbia errori al suo interno, non mi spiego questi errori. Sapresti indicarmi, eventualmente, dove scaricarla? Io l'ho presa da qui

    https://github.com/HostsTools/Windows/blob/master/wininet.lib


    Grazie ancora per il supporto
  • Re: FTP Wininet - Errori

    Come hai aggiunto la libreria?

    Usa lo switch

    -lwininet
Devi accedere o registrarti per scrivere nel forum
3 risposte