Win XP - Win Me



  • Nein, in der stdafx.h ist aus meiner Sicht nichts passendes zu finden. Scheint ja ein echt nohc ungelöstes Problem zu sein, werd dann wahrscheinlich Win 98 oder Me auf die zweite Festplatte installieren (tolle Lösung, aber was solls...)
    Auf jeden Fall danke an alle, die zu helfen versucht haben.
    Mfg Georgi



  • Das kann sein wenn du noch VC++ 6 benutzt, aber bei meinem VC++ .net wird das vom Assistenten mit in die stdafx.h reingeschrieben. Musste halt die paar Zeilen von Hand reinschreiben! Kann mich jetzt leider nicht mehr genau dran
    erinnern wie die Konstanten genau heißen, irgendwas mit WIN_... , einfach mal
    MSDN nachschauen.



  • Hm.. also ich hab ehrlich gesagt nichts gefunden im Bezug auf diese Win_-Konstanten, dafür stand in der MSDN aber was davon, dass Koordinatensystemfunktionen unter Win98/Me als 16-Bit-Funktionen, unter Win NT und Win XP allerdings als 32 Bit Funktionen arbeiten, und daher Fehler entstehen können. Die Frage wäre jetzt: Wie krieg ich den Compiler dazu, auch unter Win XP die alten (16 bittigen) Versionen der nötigen Funktionen zu kompilieren? FAlls jemand eine solche Möglichkeit kennt (ist eine dieser WIN_ Konstanten so eine Möglichkeit? wenn ja - könte mir jemand die dazu gehörige Konstante nennen? ) wäre ich ihm sehr verbunden.



  • Was genau wird denn in Bezug auf das GDI in Win98 falsch angezeigt?
    (Beispiele)
    Bei mir sieht das immer gleich aus!

    [ Dieser Beitrag wurde am 04.12.2002 um 08:16 Uhr von RenéG editiert. ]



  • Also, ich benutze CDC::SetMapMode und SetViewportExt/Org in meiner OnDraw in meinem SDI-Programm um ein Koordinatensystem zu erstellen, bei welchem die x-Achse nach rechts und die y-Achse nach oben hin verläuft (wie man es aus mathe kennt) und außerdem soll der koordinatenursprung in der mitte des bildschirms liegen, und eingie andere änderungen noch.
    Scheinbar funktionieren diese funktionen die ich unter XP kompiliert habe, auf Win98 GAR NICHT, denn sie verändern nix an der darstellung, und während das prog unter xp prima läuft, seh ich bei win98 ne darstellung, als hätte ich die funktionen nie aufgerufen.



  • Vielleicht liegt das an der MFC-Runtime DLL, vielleicht wird auf ME ne andere als auf XP benutzt. Vielleicht liegt es daran.



  • meinst du diese Datei mfc42.dll ? Die ist schon seit Win98 glaub ich standardmäßig dabei und ist bei XP auch nicht neuer - oder irre ich mich da?



  • Also an der MFC-DLL liegts auf keinen Fall.
    Einzig und allein was es sein könnte, ist, wenn Du Die Viewport- oder Window-Extensions grösser als 16bit (32767) sind, da WinME nur mit 16bit GDI arbeitet.



  • Nein, die Extensions sind nur so groß wie die bildschirmaulösung (werte über 1600 kommen da ziemlich sichernicht vor). Aber nciht nur das, auch SetMapMode scheint ja nicht zu funktionieren, also wird es wohl an was anderem liegen. 😞



  • Ok, ich habs gelöst. Folgender Fehler: In meinem Code rief ich zuerst SetViewportExt, danach SetWindowExt auf. Da aber diese Reihenfolge nach dem Aufruf SetMapMode(MM_ISOTROPIC) verboten ist (es muss andersherum passieren), kam bei Win 98/Me der Fehler, dass die Funktionen wirkungslos blieben. WinXP dagegen scheint auch die falsche Reihenfolge der Funktionsaufrufe zu akzeptieren.



  • Hallo,

    vielleicht liegt es auch einfach nur an der Tatsache, dass Win9x/ME die Koordinaten nicht wie WinNT/2K/XP verwenden kann.
    (Siehe Visual C++ Kompendium ISBN 3-8272-5467-1 Seite 127 5. Absatz, Verkürzter Inhalt: Windows 9x/ME verwenden wie ihr Vorgänger Win 3.1 16-Bit-Koordinaten, während Windows NT/2K/XP 32-Bit-Koordinaten.)


Anmelden zum Antworten