Ab bestimmter Windows Version

Hallo,

ich hab mal eine Frage zu Funktionen die eine bestimmte Windows-Version voraus setzen (Ist z.B. unter jeder Funktion in der MSDN beschrieben -> Minimum supported client).

Die meisten Funktionen setzen Windows 2000 voraus (Niedrigeres hab ich noch nicht gesehen). Was passiert, wenn ich solch ein Programm mit Windows 98 oder so starte? Kommt von irgendeiner Microsoft-library eine Fehlermeldung oder passiert einfach gar nichts?

Weiß da jemand mehr?

Hallo

Die meisten Windowsfunktionen werden ja anhand einer .lib (z.B. kernel32.lib) einer DLL zugewiesen (z.B. kernel32.dll). Beim Starten des Programms wird dann die kernel32.dll in den Adressraum deines Programmes geladen und der Loader löst versucht alle Verweise, die in deinem Programm durch die kernel32.lib gemacht wurden in der Exporttabelle der kernel32.dll aufzulösen (mit dem Namen bzw der Nummer der Funktion). Es ist anzunehmen, dass in einer früheren Version von Windows diese Funktion in der entsprechenden Windows-DLL gar nicht vorhanden ist und daher auch nicht in deren Exporttabelle. Daher wird der Loader am Schluss noch Verweise offen haben, die er nicht auflösen konnte. In so einem Fall wird eine Messagebox angezeigt, in welcher ein Text à la „Der Einsprungpunkt ‚_GetProcessId@4‘ wurde in der DLL Kernel32.dll nicht gefunden.“.

Das ist das Verhalten, das ich erwarten würde und das in vergleichbaren Situationen auch eintritt.

Gruss
Kayde

Ok, mit so einer Art von Meldung kann ich leben :wink:

Mehr wollte ich gar nicht wissen, dankeschön!

Wenn du ganz sicher sein möchtest kannst du ein Programm schreiben, das eine Funktion verwendet, die vor Vista nicht verfügbar ist (z.b. DwmEnableBlurBehindWindow). Einen User zu finden, der XP hat ist in der Regel nicht so schwer wie jemanden, der kein Windows 2000 hat. :wink:

Gruss und schönen Abend
Kayde