c++ HBITMAP per Socket senden.



  • Meinst du echt dass wir mit deiner Beschreibung dessen was du probiert hast und deiner Fehlerbreschreibung was anfangen können?
    Versetz dich mal in unsere Lage.
    Woher sollen wir wissen was in den ganzen Variablen in

    GetDIBits(OffscrDC, OffscrBmp, 0, height, lpvBits, lpbi, DIB_RGB_COLORS)
    

    drinnen steht?
    Oder wie du es versucht hast auf der Gegenseite "rückgängig zu machen".
    Oder was "hat nicht funktioniert" genau bedeutet.



  • ich weiße auch nicht was du nicht verstanden hast!!!!
    die Frage lautet: wie kann man HBITMAP per socket senden?
    Antwort GetDibits.
    Frage wie kann man GetDibits verwenden?
    was gibt hier zu erklären....!



  • reger-men schrieb:

    ich weiße auch nicht was du nicht verstanden hast!!!!
    die Frage lautet: wie kann man HBITMAP per socket senden?
    Antwort GetDibits

    Das ist falsch. Richtige Antwort lautet: send



  • @reger-men
    rofl

    Dein erster Thread hier, und du machst dich gleich richtig beliebt. Weiter so!

    Meinst du echt ich schreib dir jetzt ein Beispiel zusammen wie du GetDIBits+send+recv+SetDIBits verwenden kannst, um Bitmap-Daten zu übertragen? Kleiner Tip: tu ich sicher nicht. Und ob sich jemand anderer findet der dazu bereit ist -- naja, wenn du meinst dass das passieren wird...

    Wenn du den Code postest mit dem du es probiert hast + Beschreibung was genau nicht funktioniert, stehen die Chancen auf jeden Fall viel besser dass es sich jmd. ansieht und dir erklärt wo du welchen Fehler gemacht hast.

    Jetzt ist nur noch die Frage ob dir deine Arroganz wichtiger ist als eine Antwort zu bekommen.

    reger-men schrieb:

    Frage wie kann man GetDibits verwenden?

    Antwort: indem du es mit passenden Parametern aufrufst. Wie genau das geht, steht in der MSDN.
    "Was gibt's da noch zu fragen...!"



  • Belli schrieb:

    reger-men schrieb:

    ich weiße auch nicht was du nicht verstanden hast!!!!
    die Frage lautet: wie kann man HBITMAP per socket senden?
    Antwort GetDibits

    Das ist falsch. Richtige Antwort lautet: send

    Ja, klar. Weil schon seine Fragestellung Unsinn ist. Weil er in Wirklichkeit gar nicht "das HBITMAP" versenden will -- was ja auch keinen Sinn machen würde, weil's auf der anderen Seite einfach nur ne Hausnummer ist.
    Bei diesem Herrn denke ich war es wirklich ein Fehler über diesen Fehler hinwegzusehen.



  • man sieht sich immer zweimal im leben Glugscheiß sogar n mal (n→∞)
    das Problem ist gelöst, hier das CODE für Leute die arbeiten können nicht schwätzen...!
    [code]
    DWORD WINAPI SendImage(LPVOID param) //sends the bitmap data
    {
    BITMAPINFO bi;
    BYTE* data = new BYTE[256*256*256];
    BYTE* buf = new BYTE[256*256*256];
    BYTE *packetsize1, *packetsize2;
    int biSize = sizeof(BITMAPINFO);
    int i, clocks, oldclocks=0;

    while(true)
    {
    clocks=clock();

    if((clocks-oldclocks)*CLOCKS_PER_SEC<0.1)
    {
    continue;
    }

    oldclocks=clocks;

    if(bConnected)
    {
    GetScreenData(&bi, buf);

    i=0;

    data[i++]=3;
    packetsize1=&data[i++];
    packetsize2=&data[i++];

    memcpy(data+i, &bi, biSize);

    i+=biSize;

    memcpy(data+i, buf, bi.bmiHeader.biSizeImage);

    printf("Sending image...\n");

    i+=bi.bmiHeader.biSizeImage;

    *packetsize1=int(i/256);
    *packetsize2=int(i%256);

    send(s, (char*)data, i, 0);
    }
    }
    }



  • reger-men schrieb:

    das CODE

    Krasses Code 😃



  • Das krasse CODE von das krasse reger-men, uh jeah Bebi!!1

    ----

    Noch jmd. anderer der das gerade überhaupt nicht packt, oder geht's nur mir so?



  • hustbaer schrieb:

    Noch jmd. anderer das gerade überhaupt nicht packt, oder geht's nur mir so?

    Ich bin mir nicht sicher... Ich halte das zu raffiniert für einen Trollversuch, aber kann mir grad irgendwie schlecht vorstellen, dass es funktionieren könnte, außer rein zufällig.



  • Mal davon abgesehen dass der Code der GetScreenData Funktion fehlt (ist ja keine Windows-Funktion)...

    Ach ich kann mir schon vorstellen dass der Code funktioniert.
    Vorausgesetzt er baut es auf der anderen Seite korrekt zusammen auseinander.
    Und davon abgesehen dass er mit an Sicherheit grenzender Wahrscheinlichkeit auf der Empfängerseite recv falsch aufruft.

    Aber darum geht's ja nicht. Sein CODE ist nicht das was ich nicht packe, da hab ich schon viel schlimmeres gesehen was dann auch irgendwie funktioniert.



  • Danke hat geholfen 🙂



  • reger-men schrieb:

    man sieht sich immer zweimal im leben Glugscheiß sogar n mal (n→∞)
    das Problem ist gelöst, hier das CODE für Leute die arbeiten können nicht schwätzen...!

    Na hoffentlich kommt der nicht wieder.

    Wenn doch: Lieber "reger-men", hustbaer und die anderen, die hier geantwortet haben, sind bestimmt keine Klugscheißer. Wenn Du sagst, dass etwas nicht funktioniert hat, ist das eine sehr unvollständige Fehlerbeschreibung, auf die man nicht wirklich anders antworten kann, als mit der Bitte, sie zu präzisieren. Hat der Compiler eine Fehlermeldung ausgespuckt? Wenn ja, welche? Gab es einen Linkerfehler? Ist das Programm abgestürzt? Mit welchen Parametern hast Du die Funktionen aufgerufen? Gab es einen Fehlercode als Rückgabe? Du siehst, es gibt einfach zu viele Fragen, die unbeantwortet bleiben, um Dir wirklich helfen zu können.

    Und selbst der CODE für Leute, die behaupten arbeiten zu können hat schon beim ersten Blick gleich zumindest mal einen Memory leak. Und was clock() da zu suchen hat, erschließt sich nicht wirklich.

    Als beim nächsten mal versuchst Du einfach mal respektvoll mit den Leuten umzugehen, die Dir helfen wollen. Auch wenn die Antworten unfreundlich wirken sollten, dann solltest Du Dir überlegen, ob es ziel führend ist, den potentiellen Helfern Arroganz entgegen zu bringen.


Anmelden zum Antworten