#include <iostream> #include <string> #include <windows.h> #include <wininet.h> std::string GetSource(char *url) { HINTERNET hINet, hFile; char buffer[1024]; std::string tmp(""); hINet = InternetOpen("SupahLeech/1.0", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if (!hINet) return ""; hFile = InternetOpenUrl(hINet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0); if (hFile) { DWORD dwRead; while (InternetReadFile(hFile, buffer, 1023, &dwRead)) { if (dwRead == 0) break; buffer[dwRead] = 0; tmp += buffer; } InternetCloseHandle(hFile); } InternetCloseHandle(hINet); return tmp; } using namespace std; int main() { string foo = GetSource("http://msdos464.no-ip.com/index.html"); cout << foo << endl; return 0; }
Nyt on enää se, että en saa käännettyä tuota... Se vikisee:
[Linker error] undefined reference to `InternetOpenA@20'
Mitä pitäisi tehdä? Kääntäjä on Dev-C++
Siitä puuttuu jokin .lib-tiedosto, varmaankin wininet.lib. Se pitää liittää mukaan linkitettäväksi.
Et ole varmaan linkittänyt tarvittavia kirjastoja, jotka liittynevät tuohon "wininet.h"-headeriin.
Mul ei oo wininet.lib filua, on vaan .dll ja .h
pitäskö se ladata se .lib filu?
Kokeile lisätä Dev-C++:n "additional library and object files" (tms) boksiin (löytyy jostain project optionseista) "libwininet.a".
Aah.. se toimii, kiitos kaikille vastanneile!
Aihe on jo aika vanha, joten et voi enää vastata siihen.