Warum die ganzen mathematischen Funktionen, wenn man ein Record nehmen kann, welcher zwei Entsprechungen hat (Long und die vier Bytes)?
Weil das zu einfach wäre?
In Anlenung an die bekannte Versions-Ressource des Windows, könnte man sich auch überlegen das mit 2x DWORD aka UInt64 / 4x WORD umzusetzen, also mit Word statt Byte pro Nummer.
Zitat:
Delphi-Quellcode:
tagVS_FIXEDFILEINFO = packed record
dwSignature: DWORD; { e.g. $feef04bd }
dwStrucVersion: DWORD; { e.g. $00000042 = "0.42" }
dwFileVersionMS: DWORD; { e.g. $00030075 = "3.75" }
dwFileVersionLS: DWORD; { e.g. $00000031 = "0.31" }
dwProductVersionMS: DWORD; { e.g. $00030010 = "3.10" }
dwProductVersionLS: DWORD; { e.g. $00000031 = "0.31" }
dwFileFlagsMask: DWORD; { = $3F for version "0.42" }
dwFileFlags: DWORD; { e.g. VFF_DEBUG | VFF_PRERELEASE }
dwFileOS: DWORD; { e.g. VOS_DOS_WINDOWS16 }
dwFileType: DWORD; { e.g. VFT_DRIVER }
dwFileSubtype: DWORD; { e.g. VFT2_DRV_KEYBOARD }
dwFileDateMS: DWORD; { e.g. 0 }
dwFileDateLS: DWORD; { e.g. 0 }
end;