Anwendung für die Webabfrage erstellen
-
Hallo Leute.
Bin schon seit Stunden auf der Suche nach einer Lösung, doch bin weder bei Google noch hier fündig geworden. Kann aber auch sein, dass in diesem Moment für diese Aufgabe ein Hintergrundwissen bei mit nicht vorhanden ist.
Was möchte ich machen. Ich möchte mit diesem Programm eine mir bekannte Webseite aufrufen und den geschickten HTML Code als Antwort erhalten und in eine Datei auf meinem PC speichern (ähnlich einem Browsen).
Bin für jeden Tipp oder Antwort sehr dankbar.
MfG
parabolis
-
Gehört eigentlich nach WinAPI, falls du Windows als BS meinst.
Dann dort mit URLDownloadToFile arbeiten.
-
Danke Wutz,
Das mit URLDownloadToFile habe ich auch schon gefunden, doch trotzdem komme ich nicht weiter. Wenn ich sogar die includes in mein C Programm importiere, dann bekomme ich mehrer Fehler als das Programm mit anzeigen kann. Ist das eine C++ Funktion?
Hast Du eventuell ein komplettes Beispiel in C?
Gruß
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-267806.html
Ist sogar von mir gewesen, vorher dann noch üblicherweise#include <windows.h>sowie vorher noch, was ich dabei immer mache um den Unicode-Krams zu umgehen:
#undef UNICODE #undef _UNICODE #pragma warning(disable:4996)Den Rest solltest du dir aber zusammengooglen können oder im genannten Forum

-
Danke erneut.
Ich Moment bekomme ich ein Fehler
'URLDownloadToFileW': Konvertierung des Parameters 2 von 'const char [19]' in 'LPCWSTR' nicht möglich 1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
-
parabolis schrieb:
Danke erneut.
Ich Moment bekomme ich ein Fehler
'URLDownloadToFileW': Konvertierung des Parameters 2 von 'const char [19]' in 'LPCWSTR' nicht möglich 1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.Mann, Mann, genau diesen Unicode-Fehler hab ich vorausgesehen: nimm die 4 Zeilen wie beschrieben und fertig.
-
Danke, das läuft jetzt. Doch ein Problem habe ich nocht. Wenn ich mit C arbeite, so habe ich nach dem Compilieren eine EXE Datei in dem Debug ordner, die ich anschließend ausführen kann. Dieses Programm habe ich jetzt mit C++ gemacht und dort wird keine EXE Datei erstellt, nur eine mit der Endung ".exe.embed.manifest.res". Wenn ich aus dem MVS aber debuge, dann wird das Programm richtig ausgeführt. Wo liegt das Problem, wie bekomme ich die EXE Datei?
Gruß
-
parabolis schrieb:
Danke, das läuft jetzt. Doch ein Problem habe ich nocht. Wenn ich mit C arbeite, so habe ich nach dem Compilieren eine EXE Datei in dem Debug ordner, die ich anschließend ausführen kann. Dieses Programm habe ich jetzt mit C++ gemacht und dort wird keine EXE Datei erstellt, nur eine mit der Endung ".exe.embed.manifest.res". Wenn ich aus dem MVS aber debuge, dann wird das Programm richtig ausgeführt. Wo liegt das Problem, wie bekomme ich die EXE Datei?
GrußDas wiederum wäre wieder ein anderes Forum, ab Visual Studio 2005 gibts den Manifestkram zusätzlich zum Unicodekram.
Du musst statisch linken, wie man das macht
http://www.kalmbach-software.de/screencasts/VC2008EE-StaticLinkCRT/
-
Du bist ein Schatz, läuft wie gewollt.
Eventuell eine andere Frage noch. Gibt es auch einen anderen Befehl, der den empfangenen Quallcode nicht in eine Datei sondern in z.B. ein Stringarray schreibt? Oder Z.B. wo ich Life Zeile für Zeile empfange auf dieses in mein CMD ausgeben kann?
Gruß
-
Tja, dass geht dann nicht mehr mit Einzeilern wie URL* Funktionen, sondern irgendwie mit sehr viel aufwändiger mit InternetReadFile usw.
Du kannst aber die empfangene Datei einfach mit fopen/fgets durchhecheln und die Zeilen dann abarbeiten/anzeigen. Für einfaches Anzeigen auf der Konsole geht natürlich auchsystem("type datei.txt");
-
Ja, das dachte ich mit auch schon. Nagut, wichtig was es nur, dass ich erstmal die Daten auf meinem PC habe. Dann kann ich es auch schon einzeln abarbeiten. Ich danke Dir noch einmal für die Hilfe. Bis zur nächten Frage

Gruß
-
Wutz, wie Du siehst, lasse ich die Menschen nicht lange auf mich warten
Hab eine weitere Frage.Jetzt möchte ich ein Programm erstellen, was stur eine bestimmte IP und Port überwacht (polling Variante) und beim Empfang einfach die Daten aufzeichnet (UDP, erstmal kein TCP). Gibt es ähnliche Funktionen in C bzw. C++?
Viele Grüße
-
ANSI C kennt keine IP oder Ports. Es gibt aber für C/C++ viele Bibliotheken oder Beispielcodes. Kannst ja mal nach Miniwebserver suchen.
-
Hallo,
hab bis jetzt nichts passendes finden können, aber ich gebe nicht auf. Werde weiter suchen. Danke für die schnelle Antworten.
Viele Grüße
-
Hallo Leute, brauche erneut Eure Hilfe.
Bin schon seit Tagen mit folgenden Problem beschäftigt und finde keine Lösung.Diese Methode funktioniert ohne Probleme
void WebRead(void){ URLDownloadToFile( NULL, L"http://www.test.de/", // URL L"C:\\test.txt", // Lokaler Name der Datei 0, NULL); }Diese Methode will aber gar nicht, das heißt, wenn ich eine Adresse als String übergebe.
void WebRead(char *WebLink){ URLDownloadToFile( NULL, WebLink, // URL L"C:\\test.txt", // Lokaler Name der Datei 0, NULL); }Ich habe schon rausgefunden, dass es an dem LPWSTR Format liegt, aber ich finde einfach keine Wandlung von String -> LPWSTR. Hab schon eine passende Funktion gefunden
MultiByteToWideChar()jedoch stelle ich mich entweder zu doof an oder die Umwandlung wird einfach nicht richtig durchgeführt. Weiß jemand eine Lösung?
Viele Grüße
-
Falls du mit MSVC arbeitest lautet die Lösung für Unicodekrams meistens:
#undef UNICODE #undef _UNICODE /* vor #include <windows.h> einbinden */
-
Du bist ein Schatz. Einfacher geht gar nicht. DANKE!!!!

-
Wie man sieht, muss man nicht lange auf mich warten, da kommt auch schon die nächste Frage.
Mit Hilfe eines Gerätes erhalte ich auf mein Computer GPS informations zugeschickt (UDP oder TCP, kann ich eigentlich auch selber einstellen). Diese Daten werden durch ein eingestelltes PORT übertragen. Meine Anliegen ist es jetzt, diesen PORT zu überwachen und beim Eingang der Daten diese zu empfangen. Gibt es besondere Funktionen für dieses Problem oder muss man hierzu mehrere Funktionen verwenden? Welche wären das dann?
Danke danke danke
-
Das ist aber nun wirklich kein ANSI C mehr, für Windows gehe zu WinAPI, für Linux/Unix zu Linux/Unix.
-
Hallo Wutz,
Ich habe jetzt eine gute Anleitung gefunden, aus der ich einen Server erstellen kann
http://openbook.galileocomputing.de/c_von_a_bis_z/025_c_netzwerkprogrammierung_006.htm
doch erneut kommt ein Fehler dabei raus, der meine Haare aufsteigen lässt. Es meldet sich immer der Fehlererror LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WSACleanup@0" in Funktion "_main".usw. und jeweils der gleiche Fehler zu jeder Funktions aus dem Bereich Netzwerkprogrammierung.
Hast Du eine Lösung hierfür?
Gruß