µngbd schrieb:
Es gibt aber auch Windows-Funktionen, von denen nur eine Version existiert, die aber trotzdem immer die Größe einer Struktur wissen wollen, die an sie übergeben wird. Ich hab mir da gedacht, daß da vielleicht irgendein Hack dahintersteckt, vielleicht eine unvollständige Binärkompatibilät oder sowas.
Schließlich wäre es, einmal ehrlich gesagt, ein seltames Interface-Design, Versionsnummern auf Größenangaben abzubilden: da würde ich eher eine Aufzählung der möglichen Versionen machen.
Wäre wirklich fein zu wissen, warum das so ist.
Es geht einzig und allein darum, verschiedene Versionen der Strukturen auseinanderhalten zu können.
Wirklich.
Ehrlich.
Dass es dieses "dwSize" Feld auch in einigen structs gibt von denen es sowieso bloss eine Version gibt, liegt einfach daran, dass man ja vorher noch nicht unbedingt weiss, bei welchen structs man neue Versionen brauchen wird, und bei welchen nicht.
Dass das nicht unbedingt der schönste Weg ist, ist auch klar. Heutzutage hätte man vermutlich einfach zwei oder mehr Funktionen gemacht, wobei die zweite (dritte) dann einfach die zweite (dritte) Version der struct als Parameter bekommt.