Hi,
Darum kann Windows (Windowsprogramme) auch nie wirklich gut und schnell werden! Da passt die Programmiersprache nicht zum Kernel.
doch schon - nur dass der Kernel nicht die seit Jahrzehnten üblichen Funktionen aus der C-Standardbibliothek implementiert, sondern einen eigenen Satz an Funktionen.
Natürlich gibt es auch fopen(), flock(), fread() und Konsorten in den Bibliotheken der Windows-Compiler. Aber die entsprechenden Funktionen sind im Windows-Kernel nur Wrapper für CreateFile(), ReadFile() etc. mit teils völlig anderer Semantik. Microsoft empfiehlt daher, generell die Windows-spezifischen Funktionen zu verwenden.
Bei Funktionen zur Speicherverwaltung sieht's genauso aus: MS empfiehlt, nicht malloc() und free() zu verwenden (obwohl die natürlich auch zur Verfügung stehen), sondern deren Windows-spezifische Pendants GlobalAlloc(), GlobalLock(), GlobalFree() usw., die mehr Möglichkeiten bieten, aber dadurch auch schwieriger zu handhaben sind.
Dass dies dem Wunsch nach Portabilität wenigstens noch auf Quellcode-Ebene zuwiderläuft, ist logisch.
So long,
Martin
Dürfen Finanzbeamte eigentlich ihren Kaffee schwarz trinken? - Ich glaube ja. Aber sie dürfen ihre Tasse nicht absetzen.
(gehört auf SWR3)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(