Oppure

Loading
25/07/08 17:06
lorenzo
Devo connettermi ad un server ftp con il programma per ottenere un file.

Ho creato allora la funzione:

void CreateConnection()
{
	HINTERNET hInternetConn;
	HINTERNET hInternetOpen;
	char szAppName[] = "Prog update";
	char serverName[] = "localhost";

	hInternetOpen = InternetOpen( szAppName , INTERNET_OPEN_TYPE_DIRECT , NULL , NULL , INTERNET_FLAG_ASYNC );

	hInternetConn = InternetConnect( hInternetOpen , serverName , INTERNET_DEFAULT_FTP_PORT , NULL , NULL , INTERNET_SERVICE_FTP ,
		INTERNET_FLAG_PASSIVE , 0 );

}


e ho incluso #include<wininet.h>

Quando compilo tutto bene ma quando faccio il build mi vengono due errori:

--------------------------------------------
ftp_update.obj : error LNK2001: unresolved external symbol __imp__InternetConnectA@32

ftp_update.obj : error LNK2001: unresolved external symbol __imp__InternetOpenA@20
--------------------------------------------

Come mai? Il file wininet il compilatore me lo vede, quindi perché non trova le funzioni??

Aiuto
:d

Tra parentesi, uso vc++ 6.0
Ultima modifica effettuata da lorenzo 25/07/08 17:07
aaa
25/07/08 17:16
pierotofy
Hai aggiunto il riferimento al relativo file .lib?
Il mio blog: piero.dev
25/07/08 17:22
lorenzo
Postato originariamente da pierotofy:

Hai aggiunto il riferimento al relativo file .lib?


e dove lo trovo? Pensavo fosse una libreria integrata in vc come le altre( windows.h, stdio.h,etc..)
aaa
25/07/08 17:30
gantonio
I file .h NON sono librerie ma semplici file include.

Se vuoi utilizzare le funzioni di una libreria esterna, devi indicarlo al linker. Per il Visual C++ 6 puoi anche metterlo nel sorgente all'inizio con

#pragma comment(lib, "wininet.lib";)
aaa
25/07/08 17:35
lorenzo
So che i .h sono solo file di intestazione.
La mia domanda era: dove trovo il file wininet.lib?

Nella cartella di vc?
aaa
25/07/08 17:47
gantonio
Postato originariamente da lorenzo:

So che i .h sono solo file di intestazione.


Scusa ... ma avevi scritto

"Pensavo fosse una libreria ... come le altre( windows.h ..."

ecco perche' ho fatto la precisazione ...

La mia domanda era: dove trovo il file wininet.lib?

Nella cartella di vc?


Sta nella cartella lib ... ma non importa ... con la pragma, viene trovata e inclusa ... l'hai provato?
aaa
25/07/08 17:52
lorenzo
Ok, adesso funziona. Grazie.
Ma perché non è stata trovata come tutte le altre? E' la prima volta che mi capita...dopotutto è una libreria nativa
aaa
25/07/08 18:13
lorenzo
Adesso però ho un nuovo problema:rotfl:

La InternetConnect mi restituisce sempre NULL

Ho provato anche a modificarla in questo modo ma niente:

	hInternetConn = InternetConnect( hInternetOpen , serverName , INTERNET_DEFAULT_FTP_PORT , user , passwd , 
		INTERNET_SERVICE_FTP , 0 , 0 );


dove serverName = "127.0.0.1" e user e passwd sono l'utente e la password che ho messo in filezilla...
aaa