Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

14.09.2008, 00:02

Ich traue es mich ja kaum zu sagen, aber ich habs jetzt geschafft und der Fehler war...nicht nötig...

Naja, falls jemand das Gleiche vor hat, schreibe ich hier mal, wie es funktioniert.

Das PHP-File gibt einfach etwas aus, z.B. die Version:

Quellcode

1
2
3
<?php
echo("1.5");
?>


Ziemlich einfach.

Dann brauch man das nur noch im C++-Programm auszulesen (lol, "nur noch", dieser Teil war für mich am schwersten).
Ich geb hier einfach mal ein Beispiel, das ist ja kein ganzes Tutorial (diesen C++-Teil könnte man durchaus noch in ein Tutorial reinschreiben, da man meistens nur den PHP-Teil findet):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
    HINTERNET hInternet = InternetOpen("Microsoft Internet Explorer",
        INTERNET_OPEN_TYPE_PRECONFIG,
        0, 0, 0);

    HINTERNET hURL = InternetOpenUrlA(hInternet, pcURL, 0, 0, INTERNET_FLAG_RELOAD, 0);

    DWORD dwNumBytesRead;
    BYTE* pCursor;
const int size = 50;
    pCursor = new BYTE[size]; 
    BOOL b;
    b = InternetReadFile(hURL, pCursor, size, &dwNumBytesRead);
// b = TRUE wenn erfolgreich, sonst FALSE

So, alles was man wissen muss ist jetzt in dwNumBytesRead und pCursor zu finden.
Die ersten Stellen von pCursor stellen die "Versionsnummer" dar, in dwNumBytesRead steht, wieviele das genau sind (aber 1 mehr).
Bsp: Version = 1.456, also 5 Zeichen, also steht in dwNumBytesRead 6.
Nun muss man nur noch die ersten dwNumBytesRead-1 (hier = 5) rausfiltern.


Ehrlich gesagt: Ich weiß nicht wirklich, warum ich dafür so lange gebraucht hab.
Danke für die Hilfe!

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

22

14.09.2008, 00:17

Zitat von »"unsigned long"«

PCShadow
Komisch? Sockets laufen bei mir auch unter POSIX-Systemen, die WinINet jedoch nicht? Wie kommt das nur?

Außerdem ist das HTTP-Protokoll zu implementieren sowieso nur eine triviale Angelegenheit.


Du kannst nicht in einem beitrag von Winsocks reden und im anderen von sockets. das sind 2 paar schuhe. Abgesehen davon ist die implementierung des http protokolls in diesem fall tatsächlich sehr übertrieben und von jedem sinn befreit. wenn er nicht platformunabhängi sein will, lass ihn doch. falls er es doch will, sockets aber scheut gibt es i-wo im internet mit sicherheit libs, die das http protokoll implementieren (mit sockets) und die xplatform sind. die sollten dann recht bequem zu verwenden sein, da http ja wirklich keine große sache ist, aber für gewisse dinge doch immer noch overkill.

Socke

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

23

14.09.2008, 03:24

Zitat von »"Faule Socke"«


Du kannst nicht in einem beitrag von Winsocks reden und im anderen von sockets. das sind 2 paar schuhe.

Ne, sind die Gleichen, nur haben die einen blau Schuhbändel.

Werbeanzeige