InternetReadFile speichert zuwenig im buffer



  • Ich schaff es einfach nicht ,dass die komplette website in meinen char array eingelesen wird

    Hab es mit youtube und google getestet.
    Google hat ca. 14000 zeichen im quelltext jedoch werden nur etwa 4000 in meinem array gespeichert.

    Hab mehrere varianten und code snippets auspobiert und auch den msdn eintrag gründlich gelesen aber es will irgendwie nicht ganz hinhauen 😞

    HINTERNET hINet, hFile;
    BOOL readfile = true;
    DWORD dwRead;
    char buffer[64000];
    
    hINet = InternetOpen("X", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
    if (!hINet)
    {
    cout<<"Failed to create a Internetsession";
    return 0;
    }
    
    hFile = InternetOpenUrl( hINet, TARGETURL, NULL, 0, 0, 0 ) ;
    if (hFile)
    {
    
    SetConsoleTitle("Connected");
    
    while(readfile)
    {
    readfile = InternetReadFile(hFile, buffer, sizeof(buffer), &dwRead );
    
          if(readfile && dwRead == 0){
               break;
    
          }
    }
    


  • InternetReadFile überschreibt dir mit jedem Schleifendurchlauf die Daten die zuletzt gelesen wurden weil du immer wieder den gleichen Zeiger übergibst. Du must die schon gelesenen Bytes draufrechnen.



  • Paula schrieb:

    InternetReadFile überschreibt dir mit jedem Schleifendurchlauf die Daten die zuletzt gelesen wurden weil du immer wieder den gleichen Zeiger übergibst. Du must die schon gelesenen Bytes draufrechnen.

    Vielen Dank habs hinbekommen 😉


Anmelden zum Antworten