Daten vom Server laden





  • also ... ich bin jetzt soweit gekommen

    #include <windows.h>
    #include <wininet.h> 
    
    int main()
    {
    
    HINTERNET test = InternetOpen("iexplorer", INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
    if(test == NULL)
    {
     		  //error
    }
    InternetOpenUrl(test, "http://eastbourne.ea.funpic.de/test.txt", NULL, NULL, INTERNET_FLAG_RELOAD, NULL); 
    
    }
    

    Sorry aber irgendwie blicke ich das msdn net ganz...

    das gibt InternetOpenUrl zurück? bzw. wie komme ich jetzt an die txt?



  • InternetReadFile





  • So

    #include <windows.h>
    #include <wininet.h> 
    
    int main()
    {
    HINTERNET open = InternetOpen("iexplorer", INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
    if(open == NULL)
    {
     		  //error
    }
    HINTERNET Connection = InternetOpenUrl(open, "http://eastbourne.ea.funpic.de/test.txt", NULL, NULL, INTERNET_FLAG_RELOAD, NULL); 
    char lesen[1024];
    char* lesen2;
    
    InternetReadFile(Connection, lesen2, 1024, NULL);
    }
    

    so... mein Compiler (dev-c++ gibt aber diverse fehler aus)

    36 C:\Eigene Dateien\C++\projekte\downltest\main.cpp [Warning] passing NULL used for non-pointer converting 4 of void* InternetOpenUrlA(void*, const CHAR*, const CHAR*, DWORD, DWORD, DWORD)' 36 C:\\Eigene Dateien\\C++\\projekte\\downltest\\main.cpp [Warning] passing NULL used for non-pointer converting 6 ofvoid* InternetOpenUrlA(void*, const CHAR*, const CHAR*, DWORD, DWORD, DWORD)'
    [Linker error] undefined reference to InternetOpenA@20' [Linker error] undefined reference toInternetOpenUrlA@24'
    [Linker error] undefined reference to `InternetReadFile@16'



  • Schlechtes Beispiel... sollte besser heissen:

    HINTERNET Connection = InternetOpenUrl(open, "http://eastbourne.ea.funpic.de/test.txt", NULL, 0, INTERNET_FLAG_RELOAD, NULL);
    

    Und füge noch die "Wininet.lib" als LIB Deinem Projekt hinzu...
    Unter VC kannst DU das auch mittels:

    #pragma comment(lib, "Wininet.lib")
    

    machen; weiss aber nicht ob das DevC kann...



  • scheinbar kann ers nicht ... es kommt nämlich immernoch

    [Linker error] undefined reference to InternetOpenA@20' [Linker error] undefined reference toInternetOpenUrlA@24'
    [Linker error] undefined reference to `InternetReadFile@16'

    zurück



  • Wininet.lib hast Du hinzugefügt, dass er gegen diese LIB linken soll?



  • wenn du damit meinst das ich die lib im projekt aufgenommen habe dann ja .. (fehler bleibt)



  • Du solltest Dich an jemand wenden, der sich mit Deiner IDE auskennt...



  • die datei heißt dort ein wenig anders. ich glaube libwininet.a oder so.



  • achso und das mit dem pragma geht meines wissens nicht. du musst die datei über die projektoptionen einbinden.



  • woher nehme ich den jemand der sich mit dev-c++ auskennt

    und es gibt die libwinnet.a ... hab sie mal dem Projekt hinzugefügt.. nix passiert

    sorry .. aber ic hkriegs echt net gebacken 😞



  • dev-c++ solltest du sowieso meiden. ist eine der schlechtesten ides. nimm codeblocks oder visual c++ 2005 express edition.



  • okay habs mal in codeblocks gemacht...

    aber ich habe immernoch ein problem...

    er gibt bei dem code

    #include <iostream>
    
    #include <windows.h>
    #include <wininet.h>
    #pragma comment(lib, "libwininet.a")
    using namespace std;
    int main()
    {
    /* InternetOpenUrl(
      HINTERNET hInternet,
      LPCTSTR lpszUrl,
      LPCTSTR lpszHeaders,
      DWORD dwHeadersLength,
      DWORD dwFlags,
      DWORD_PTR dwContext
    );
    
    InternetOpen(
      LPCTSTR lpszAgent,
      DWORD dwAccessType,
      LPCTSTR lpszProxyName,
      LPCTSTR lpszProxyBypass,
      DWORD dwFlags
    );
     InternetReadFile(
      HINTERNET hFile,
      LPVOID lpBuffer,
      DWORD dwNumberOfBytesToRead,
      LPDWORD lpdwNumberOfBytesRead
    );*/
    
    HINTERNET open = InternetOpen("iexplorer", INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
    if(open == NULL)
    {
     		  //error
    }
    //HINTERNET Connection = InternetConnect(Initialize,"",INTERNET_DEFAULT_HTTP_PORT, NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
    HINTERNET Connection = InternetOpenUrl(open, "http://eastbourne.ea.funpic.de/test.txt", NULL, 0, INTERNET_FLAG_RELOAD, 0);
    char lesen[1024];
    char* lesen2;
    
    InternetReadFile(Connection, lesen2, 5024, NULL);
    cout << lesen << endl;
    }
    

    0 aus 😞



  • du solltest auch schon was in das array schreiben lassen...





  • macht er das nicht hier

    InternetReadFile(Connection, lesen, 1024, NULL);

    schreibt er da nicht in lesen?



  • das steht da in deinem quellcode nicht.



  • oh ist das peinlich 😃

    *im boden versink* (jaja im quellcode müsste der zeiger zugewiesen werden)

    okay aber ich habe immernoch ein prob.

    #include <iostream>
    
    #include <windows.h>
    #include <wininet.h>
    #pragma comment(lib, "libwininet.a")
    using namespace std;
    int main()
    {
    /* InternetOpenUrl(
      HINTERNET hInternet,
      LPCTSTR lpszUrl,
      LPCTSTR lpszHeaders,
      DWORD dwHeadersLength,
      DWORD dwFlags,
      DWORD_PTR dwContext
    );
    
    InternetOpen(
      LPCTSTR lpszAgent,
      DWORD dwAccessType,
      LPCTSTR lpszProxyName,
      LPCTSTR lpszProxyBypass,
      DWORD dwFlags
    );
     InternetReadFile(
      HINTERNET hFile,
      LPVOID lpBuffer,
      DWORD dwNumberOfBytesToRead,
      LPDWORD lpdwNumberOfBytesRead
    );*/
    
    HINTERNET open = InternetOpen("iexplorer", INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
    if(open == NULL)
    {
     		  //error
    }
    //HINTERNET Connection = InternetConnect(Initialize,"",INTERNET_DEFAULT_HTTP_PORT, NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
    HINTERNET Connection = InternetOpenUrl(open, "http://eastbourne.ea.funpic.de/test.txt", NULL, 0, INTERNET_FLAG_RELOAD, 0);
    char lesen[123];
    
    InternetReadFile(Connection, lesen, 10024, NULL);
    
    cout << ";" << lesen  << ";" << endl;
    }
    

Anmelden zum Antworten