RGB Datenstrom auf Dialog zeichnen - wie am besten?



  • Aufgegeben?



  • nee nee, ich geb doch nich auf ... ich komm halt bloß nich sooft zum programmieren. da frag ich gleich mal ... wie binde ich die lib dynamisch? muss ich sie dazu runterladen? oder ist die schon irgendwo vorhanden ... ich kenn das nur dass man eine lib über link benutzen kann, wenn man diese im projektordner hat.

    Ist die lib denn eigentlich für die funktionalität notwendig? oder welcher programmteil in deinem demoproject benötigt überhaupt die lib?
    mfg, TFTS



  • Nein, das heisst nur, dass die mfc-dll's direkt mit in die exe compiliert werden (statisch, wird nur von der enterprise-version unterstützt). Beim dynamischen linken müssen die mfc.dll's (msvcrt, mfc42, ...)auf dem Zielrechner vorhandensein, was aber meistens der Fall ist und die Programme enorm verkürzt.
    Ob in Deinem Fall wirklich daß das Problem ist weiss ich nicht genau. Zur Not kannst Du ja noch versuchen eine Dialoganwendung mit dem Gerüst zu erstellen und mein Projekt nachzubauen, sind ja glaube ich nur 4 Stellen an denen etwas eingefügt wird.



  • du wirst es nich glauben, aber ich hab deinen quellcode 1 zu 1 in eine neue dialogbasierende anwenung übernommen. Und es malt wieder nix. Starten kann ich das programm ... aber wenn ich auf den Button drücke passiert nix.

    Kann es vielleicht daran liegen, dass ich die Standard Edition von VC 6.0 benutze?

    mfg, TFTS

    PS: und ich habe gerade noch dein bsp dialog compiliert bekommen ... der tuts auch nicht 😮 ... langsam wirds komisch 🙂

    PPS: auch das "hallo" und "tschüss" erscheint nicht



  • Puuh, so langsam gehen mir auch die Ideen aus!
    Ich habe Dir aber mal die zugehörige exe hochgeladen vieleicht gibt es ja ein prinzipielles Problem, kann ich mir aber nicht vorstellen. Ob es an der Standard Version liegt kann ich Dir leider auch nicht genau sagen daß sollte aber funktionieren.

    http://rcswww.urz.tu-dresden.de/~sb821288/VDC_exe.rar



  • hm ... da tut sich auch nix ... also muss es ja an meinem system liegen. Hab WinXP prof. incl. ServicePack 1 ... ist frisch installiert, bzw. hab das image gerade frisch wieder drauf gespielt.

    Ich werde die exe mal an anderen PCs im haus ausprobieren.

    mfg, TFTS



  • ok ... es scheint tatsächlich an der XP version meines rechners zu liegen ... muss mal sehn wie ich das beheben kann



  • Oh, das tut mir leid, ist anscheinend ein sehr spezielles Problem.
    Geht denn sonst alles?



  • so jetz hab ich XP incl SP1 komplett neuinstalliert ... und es geht immer noch nicht. ich hab die selbe version genommen die auf dem rechner ist, auf dem die exe läuft. der einzigste unterschied ist, dass auf dem rechner wo es läuft noch einige windows updates installiert sind... das kann doch aber nicht sein dass man für soetwas windows updates benötigt, oder?

    ja, sonst ging alles ... hab sonst keine probleme mit meinem XP



  • also es scheint ein nicht reproduzierbarer fehler zu sein. jetz hab ich wieder mein altes image drauf gespielt und nun gehts auch da... bis jetzt kann ich da noch kein system erkennen... auf einem anderen rechner im haus wo das selbe XP drauf ist gehts nicht.

    aber gut ... das gehört jetz nich mehr ins C++ Forum. Ich werde, wenn jetz mein system stabil deine exe ausführen kann, mich wieder an die arbeit machen und es selbst nochmal programmieren.

    Vielen dank für deine mühe.

    mfg, TFTS



  • Ok ... und hier die Lösung des Problems.
    Es liegt an der Farbtiefen Einstellung in Windows XP ... Wenn ich auf 16Bit Farbtiefe stelle, funktioniert das blitten nicht ... wenn ich 32Bit einstelle, funktioniert es.

    ... Da muss man erstmal drauf kommen. Aber die ursache, warum dieser fehler auftritt ist nicht zufällig jmd bekannt, oder?

    mfg, TFTS



  • Interessant, gut zu wissen, aber eine Antwort habe ich da leider auch nicht (und denkst Du wirklich hier liest noch jemand mit? 😉 ).
    Mich freut jedenfalls das es bei Dir läuft, nun hat die liebe Seele ruh...

    Alles Gute!

    connan



  • TFTomSun schrieb:

    Ok ... und hier die Lösung des Problems.
    Es liegt an der Farbtiefen Einstellung in Windows XP ... Wenn ich auf 16Bit Farbtiefe stelle, funktioniert das blitten nicht ... wenn ich 32Bit einstelle, funktioniert es.

    ... Da muss man erstmal drauf kommen. Aber die ursache, warum dieser fehler auftritt ist nicht zufällig jmd bekannt, oder?

    mfg, TFTS

    liegts an der Farbtiefe deines Bildes?



  • Ja, na klar das ist es, 💡 Bei CreateBitmap ist natürlich der Wert für nBitCount auch auf 16 gestellt werden.
    Danke für den Tip Pallaeon!

    Edit: Ha, es liest doch noch jemand mit 🙂



  • heisst das dass ich so eine art fall unterscheidung programmieren müsste, damit es mit 16Bit sowie 32Bit Farbtiefe funktioniert?



  • Das Bild muss komatibel zum Gerätekontext sein, so gesehen muss man schon unterscheiden zw. den 16 und 32 bit.
    Mit dibs hast du ein geräteunabhängiges Format z.B welches du vor gebrauch dann entsprecehnd umwandeln musst



  • was ist denn dibs?

    ich müsste doch eigentlich meine 24 Bit RGB Daten auf 16Bit runterrechnen oder? Aber wie wird das zb in paint gemacht ... da kann ich mir ja auch 24Bit bilder anzeigen lassen, wenn ich nur 16Bit im System eingestellt hab.

    mfg, TFTS



  • Soweit ich weiss, steht dib für geräteunabhangiges Bitmap (device independent).
    Zu Paint:Wenn man weiss, dass es dieses Problem gibt ist es kein Problem mehr darauf zu reagieren und das Bitmap umzurechnen.

    mfg

    connan


Anmelden zum Antworten