Ganz oberflächlich gesehen führen die gleichen Win32-API-Funktionen auf
beiden Windows-Varianten dasselbe aus.
Im Detail aber eben gar nicht, da sich große Teile der Implementierung
massiv unterscheiden. Windows 95 & Konsorten unterstützt nur einen
Bruchteil der Funktionen von NT, und das teilweise auch nur mit
erheblichen Einschränkungen, die vielen Programmierern schon so oder so
die Finger gebrochen haben.
Du musst Dir nur mal die Kommentare zu etlichen API-Funktionen ansehen;
MS beschreibt da (mittlerweile) ganz gut die jeweiligen
Einschränkungen.
Beispiele:
- nur sehr unvollständige Unicode-Implementierung in Windows 95 etc.
Auszug aus der Dokumentation von CreateFile:
lpFileName
[in] Pointer to a null-terminated string that specifies
the name of the object to create or open.
Windows NT/2000/XP:
In the ANSI version of this function, the name is
limited to MAX_PATH characters. To extend this limit
to nearly 32,000 wide characters, call the Unicode
version of the function and prepend "\\?\" to the path.
Windows 95/98/Me: This string must not exceed MAX_PATH
characters.
Das bedeutet also, daß a) CreateFile unter Windows95 keine
Unicode-Dateinamen kennt und b) entsprechend keine sehr langen Pfade
verwendet werden können (MAX_PATH ist 255).
- Beschränkung vieler API-Parameter auf 16-Bit-Int-Werte (Scrollbars,
Länge des Textes, der von Edit-Controls verarbeitet werden kann)
Auszug aus der Dokumentation von EM_LIMITTEXT:
Edit controls on Windows 95/98/Me: For single-line edit
controls, the text limit is either 0x7FFE bytes or the
value of the wParam parameter, whichever is smaller.
For multiline edit controls, this value is either 0xFFFF
bytes or the value of the wParam parameter, whichever
is smaller.
Dazu kommt, daß gerade im Bereich der Benutzerkonten,
Berechtigungsverwaltung etc. Windows 95 etc. sehr viele Funktionen gar
nicht aufweist; so gibt es keine Dienste und auch keine Impersonation.
Letzteres ist der Grund für viele ärgerliche Probleme, wenn Windows 95
etc. in einem Netzwerk verwendet werden sollen.