Code abhängig vom Betriebsystem ausführen?
-
Hallo Forum,
manche Apis die man unter WinXP aufrufen kann sind unter Win95 nicht vorhanden. Wie kann man Code abhängig vom Betriebsystem ausführen? Habt Ihr vielleicht eine Vorlage? (Codeschnipsel)
Ich könnte mir aus GetVersionEx(&osver) selber etwas zusammenbasteln. Das Dumme ist bloß das ich es nicht testen kann, weil hier alles XP ist...Vielen Dank
Peter
-
Das hier könnte dich interessieren:
http://msdn2.microsoft.com/en-us/library/aa383745.aspxMSDN schrieb:
Certain functions that depend on a particular version of Windows are declared using conditional code. This enables you to use the compiler to detect whether your application uses functions that are not supported on its target version(s) of Windows. To compile an application that uses these functions, you must define the appropriate macros. Otherwise, you will receive the C2065 error message.
Funktionen die in älteren Windows-Versionen noch nicht existieren musst du dynamisch via LoadLibrary()/GetProcAddress() einbinden bzw. für die ältere Windows-Version selber schreiben (wenn dort benötigt). Damit das Programm sich überhaupt auf älteren Windows-Versionen starten lässt und nich wegen fehlender DLL-Importe meckert

-
Vielen Dank Geeky

Schade das die Sache nicht so einfach ist...
-
Ich hab' bis jetzt immer GetVersion bzw. GetVersionEx verwendet. Funktioniert eigentlich super.
Beispiel hab' ich jetzt grad keines zur Hand, aber ist ja nicht wirklich was dabei -- bissi die Flags checken und fertig.Du könntest ja mal probieren was GetVersion(Ex) ausspuckt wenn du das Programm in dem komischen Windows XP Compatibility Modus Zeugs laufen lässt...
-
Hallo Hustbaer,
eine hervorrangende Idee. So kann ich zumindest das Alphateesting machen. Mittlerweile habe ich bei Herrn E. Don Key breits nach Win95 angefragt. Ganz ums Testen werde ich wohl nicht herumkommen...
Viele Grüße
Peter
-
peterfarge schrieb:
Das Dumme ist bloß das ich es nicht testen kann, weil hier alles XP ist...
Schon mal was von Virtual Server 2005 R2 gehört?
http://www.microsoft.com/germany/virtualserver/default.mspxDamit kann man auch Win95 emulieren.
-
@Martin: Hmmm... sollte man nicht lieber Virtual PC2007 nehmen; ist aktueller und unterstützt auch Vista und x64-OS.
http://www.microsoft.com/downloads/details.aspx?FamilyID=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=de
-
Hallo Jochen und Martin,
das dachte ich auch:
http://de.wikipedia.org/wiki/Microsoft_Virtual_PCVirtual Server läuft nur auf XP Servern und den habe ich nicht. Virtual PC kann zwar nicht Win95 emulieren, das kann ich heute Abend aber schnell selber auf einem alten Pentium 1 nachholen...
Vielen Dank
Peter
-
peterf_x schrieb:
Virtual Server läuft nur auf XP Servern und den habe ich nicht.
Eine Server-Edition von XP gibt es nicht

Außerdem dürfte das Programm AFAIK auch mit XP Professional laufen...peterf_x schrieb:
Virtual PC kann zwar nicht Win95 emulieren
Warum nicht? Daß es nicht offiziell unterstützt wird, heißt nicht, daß es nicht läuft. Auch viele Linuxversionen laufen mit Virtual PC, und die werden ganz bestimmt nicht offiziell unterstützt

-
Ich meinte: Windows Server 2003
http://www.tecchannel.de/server/windows/402438/Bei Virtual PC2007 kann man auch Win95 simulieren. Im Web stand es anders...
-
Win95 ist schon lange aus dem MS-Support-Zyklus, deswegen taucht es niergends mehr bei MS auf...
-
Mit VMware Server (gratis) kann man Win95 zwar nicht emulieren, aber laufen lassen, auf simulierter bzw. "virtualisierter" Hardware. Soll heissen man braucht immernoch eine Win95 Kopie um es installieren zu können, aber keinen eigenen PC mehr dafür.
(Ich finde das Wort "emulieren" hier falsch, WINE "emuliert" z.B. Windows -- d.h. ich braucht Windows nicht, hab aber ein Programm das so tut als ob es Windows wäre. Quasi. VMWare und Virtual PC simulieren PCs auf denen man dann Betriebssysteme laufen lassen kann, sie simulieren bzw. emulieren nicht das Betriebssystem selbst. Das ist ein Unterschied. Riesen Unterschied sogar.)