List Control - Zeilennamen



  • Ich hab des Rätsels Lösung gefunden:

    ich habe in stdafx.h folgendes eingefügt:

    #ifndef WINVER
    #define WINVER 0x0501
    #endif
    

    kompiliert

    ausgeführt

    und siehe da, es funktioniert!!!

    Viel Dank an AndyDD, für die Hilfe!



  • Dachte mir schon das es was mit dem OS zu tun hat. Warum lief allerdings dann das Demoprojekt bei Dir? Das ist sehr komisch.
    IMHO heißt "In my humble/honest opinion..." - "Meiner bescheidenen/ehrlichen Meinung nach..." Da hätteste auch mal Google fragen können.
    Allerdings versteh ich nicht warum es nach der WINVER-Definition funktioniert. Der springt ja immer in den else-Zweig, da Du ja kein CE hast.


  • Mod

    Welches SDK wurde verwendet?
    War evtl. WINVER >= 0x0600 definiert? Dann ist das kein Wunder dennin diesem Fall ist die Strukturgröße anders.

    Ansonsten wäre ein wenig mehr Code sinnreich.



  • Martin Richter schrieb:

    Welches SDK wurde verwendet?
    War evtl. WINVER >= 0x0600 definiert? Dann ist das kein Wunder dennin diesem Fall ist die Strukturgröße anders.

    Ansonsten wäre ein wenig mehr Code sinnreich.

    Ja Martin, meine Rede. Aber er hat doch mit

    #ifndef WINVER
    #define WINVER 0x0501
    #endif
    

    WINVER definiert, da scheint es ja vorher nicht existent gewesen zu sein. Sonst ware der Präcompiler doch nicht in den ifndef-Zweig gesprungen, oder seh ich das falsch?


  • Mod

    Es hängt vom SDK ab, was als Default verwednet wird. Wenn kein WINVER verwendet wird, wird der Default im Ausgabefenster angezeigt.
    Ich wollte mit meinem Hinweis einfach erfragen, was nun die wirkliche Ursache war.

    Weil weder Compiler noch SDK Version angegeben wurde.



  • Martin Richter schrieb:

    Es hängt vom SDK ab, was als Default verwednet wird. Wenn kein WINVER verwendet wird, wird der Default im Ausgabefenster angezeigt.
    Ich wollte mit meinem Hinweis einfach erfragen, was nun die wirkliche Ursache war.

    Weil weder Compiler noch SDK Version angegeben wurde.

    Heißt das in dem Fall (nix angegeben) das WINVER gar nicht definiert ist? Ok, dann springt er ja auch in den else-Zweig.


  • Mod

    Nein! Je nach SDK bedeutet das, dass ein Default Wert angenommen wird.
    Wird in VS-2005 kein WINVER definiert, dann gilt IMHO automatisch 0x0501!

    Das ist also extrem Abhängig vom SDK! In den neuen SDKs ist immer WINVER definiert.



  • SDK Version habe ich die 6.1

    Ich weiß, dass wenn WINVER nicht definiert ist, das eigentlich im Ausgabefenster beim kompiliern angezeigt wird. Wurde aber nicht, sonst wäre ich ja schon früher drauf gekommen.

    Bei gleicher SDK und gleichem Kompiler in einem anderen Projekt wurde es mir vor kurzem erst noch angezeigt.
    Dort wurde WINVER automatisch auf 0x0600 (Windows Vista) gesetzt.


  • Mod

    Dassieht man natürlich nur bei einem Rebuild-All, denn die windows.h wird im Allgemeinen ja nur in der stdafx.h eingefügt und mit der stdafx.cpp kompiliert.



  • Gut zu wissen. Das nächste Mal bin in da sicherlich schlauer

    Danke


Anmelden zum Antworten