JPG als HTTP-Stream einbinden VC++ 6

Baron Sengir

Mitglied
Hallo IHr Lieben,

ich habe mal wieder eine Schwierigkeit zu bewältigen:

In einer mySQL-Datenbank sind diverse Grafiken gespeichert. Auf demselben Server ist auch Apache mit PHP installiert.

Mittels eines PHP-Skripts kann ich nun die Grafiken ausgeben lassen, die ich benötige. Die gelingt mit folgendem Skript:

PHP:
<?php
    MYSQL_CONNECT("xxx", "xxx", "xxx");
    mysql_select_db("tdj3");

    $query = "select cover,filetype from cdname where id=$id";
    $result = @MYSQL_QUERY($query);

    $data = @MYSQL_RESULT($result,0,"cover");
    $type = @MYSQL_RESULT($result,0,"filetype");

    Header( "Content-type: $type");
    echo $data;
?>

Nun möchte ich dieses Bild in meiner MFC-Anwendung anzeigen lassen. Dazu habe ich mich nach einigem Suchen und vielem Lesen für die Klasse CPicture, die hier in einem anderem Thread empfohlen wird, entschieden. Für diejenigen, die die Klasse nicht kennen, habe ich sie unten nocheinmal angeheftet.

Mein Code sieht folgendermaßen aus:
C++:
	CClientDC pDC(this);
	CPicture Picture;
	CRect RL;
	RL.bottom = 100;
	RL.top = 0;
	RL.left = 0;
	RL.right = 100;

	Picture.Load("cover.jpg");
//	Picture.Load("http://localhost/test/getdatabild.php?id=1");
	Picture.Show(&pDC,RL);
	Picture.FreePictureData();

Wenn ich das so kompiliere, funktioniert auch alles so, wie ich es mir wünsche.
Das Problem ist nun, dass ich es so eigentlich nicht will. Ich würde gerne anstatt Picture.Load("cover.jpg"); die auskommentierte Zeile einsetzen. Nur leider leider geht das dann gar nicht.

Habt Ihr eine Idee, wie ich aus der Datenbank nun das JPG auslesen und in meinem Anwendung darstellen kann? Ideal wäre natürlich, wenn die CPicture.Load-Funktion umgeschrieben werden könnte, so dass sie den HTTP-Stream richtig akzeptiert. Nur leider habe ich überhaupt keine Ahnung, wie man das macht.

Für andere Lösungsvorschläge bin ich natürlich ebenfalls zu haben...

Liebe Grüße

Markus
 

Anhänge

  • cpicture.zip
    6,1 KB · Aufrufe: 32
Zurück