Problem mit CloseHandle
-
Hi ich habe folgendes Problem mit der Funktion CloseHandle
Der Code ist jedenfalls:
#include<afxwin.h> #include<wininet.h> #pragma comment(lib,"wininet.lib") #include<cstring> #include<iostream> using namespace std; int MyMain(); int ReadURL(char *pcURL,char *pData) { HINTERNET hInternet=InternetOpen("Microsoft Internet Explorer",INTERNET_OPEN_TYPE_PRECONFIG,0,0,0); if(!hInternet) return(-1); HINTERNET hURL=InternetOpenUrl(hInternet,pcURL,0,0,INTERNET_FLAG_RELOAD,0); if(!hURL) { CloseHandle(hInternet); return(-1); } DWORD dwNumBytesRead; BYTE *pCursor=(BYTE*)(pData); do { InternetReadFile(hURL,pCursor,50,&dwNumBytesRead); pCursor+=dwNumBytesRead; }while(dwNumBytesRead); CloseHandle(hInternet); CloseHandle(hURL); return(0); } class CMyApp :public CWinApp { public: virtual BOOL InitInstance(); }; BOOL CMyApp::InitInstance() { MyMain(); return(FALSE); } CMyApp MyApplikation; int MyMain() { char acGelesen[4096]; for(int ii=0;ii<4096;ii++) acGelesen[ii]='\0'; int i=ReadURL("http://www.frauenstein-net.de/kevin/php/php010012.php?product=Metzgerei-Simulator",acGelesen); if(i==-1) { MessageBox(NULL,"Konnte keine Verbindung zur URL herstellen","",MB_OK|MB_ICONSTOP); return(0); } LPCSTR Ausgabe=(reinterpret_cast<LPCSTR>(acGelesen)); MessageBox(NULL,Ausgabe,"Gelesene Ausgabe der URL",MB_OK); return(0); }Das ganze mit den statischen Bibliotheken der MFC gelinkt.
Jetzt meckert der Debugger dass ein ungültiges HANDLE angegeben wurde
Wenn ich aber CloseHandle einfach rauslasse meckert der Debugger nicht mehr. Jetzt weiß ich aber nicht genau ob das Speicherlecks hinterlässt, etc.
Oder mach ich sonst irgendetwas falsch (außer das mit MyMain)?
-
InternetCloseHandle

-
Aha! Danke!

Da hat sich wahrscheinlich jemand verschrieben.