Laufzeitfehler bei Code | WinInet | File aus dem Web saugen



  • hallo,

    ich versuche gerade ein programm zu schreiben welches über die WinInet-Lib
    eine Datei aus dem Internet herunterläd.

    Das herunterladen kappt anscheinend auch perfekt die Datei ist lokal
    vollständig vorhanden!

    aber danach kommt ein Laufzeitfehler ?!

    hier mein code:

    #include <windows.h>
    #include <iostream>
    #include <WinINet.h>
    
    using namespace std;
    
    #pragma comment( lib, "WinINet.lib" )
    
    BOOL GetFile (HINTERNET IN hOpen,CHAR *szUrl,CHAR *szFileName)
    {
    	DWORD dwSize;
    	CHAR szHead[] = "Accept: */*\r\n\r\n";
    	VOID* szTemp[25];
    	HINTERNET hConnect;
    	FILE* pFile;
    	int size_v=0;
    
    	if (!(hConnect=InternetOpenUrl(hOpen,szUrl,szHead,lstrlen(szHead),INTERNET_FLAG_DONT_CACHE,0)))
    	{
    		cerr << "Error 1!" << endl;
    		return 0;
    	}
    
    	if  ( !(pFile = fopen (szFileName, "wb" ) ) )
    	{
    		cerr << "Error 2!" << endl;
    		return FALSE;
    	}
    	do
    	{
    		if (!InternetReadFile(hConnect,szTemp,900,&dwSize))
    		{
    			fclose (pFile);
    			cerr << "Error 3!" << endl;
    			return FALSE;
    		}
    		if (!dwSize)
    			break;
    		else
    		{
    			fwrite(szTemp,sizeof(char),dwSize,pFile);
    			size_v+=(int)dwSize;
    			cout << size_v/1000 << " kB" << endl << flush;
    		}
    	}
    	while (TRUE);
    
    	fflush (pFile);
    	fclose (pFile);
    
    	return TRUE;
    }
    
    int main()
    {
    	char remote[500]="http://dl1.antivir-pe.de/down/windows/antivir_workstation_win7u_de_hp.exe";
    	char local[500];
    	HINTERNET hInternet;
    
    	cout << "remote: " << remote << endl << flush;
    
    	cout << "local: ";
    	cin >> local;
    
    	hInternet=InternetOpen(NULL,INTERNET_OPEN_TYPE_PRECONFIG,NULL,0,0);
    	GetFile(hInternet,remote,local);
    
    	return 1;
    }
    

    warum kommt da ein fehler?
    klappt der code bei euch?

    danke... Babel



  • oder habt ihr vllt. einen anderen code der das selbe macht
    ohne diesen miesen fehler? 🙂


Anmelden zum Antworten