Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Versions Nummer parsen

  Alt 5. Aug 2017, 15:54
Ich würde dir hier empfehlen schon in deiner DLL auf die arithmetischen Operationen zu verzichten und deine Versionsnummer stattdessen so zusammenzusetzen (davon ausgehend, dass die einzelnen Nummern jeweils Bytes - genauer gesagt unsigned 8-bit ints sind):
Result := (Ver_Major_Hi shl 24) or (Ver_Major_Lo shl 16) or (Ver_Minor_Hi shl 8) or Ver_Minor_Lo;

Dann kannst du die Rückrechnung nämlich einfach analog mit right-shifts vornehmen:
Delphi-Quellcode:
Ver_Major_Hi := (Version shr 24) and $FF;
Ver_Major_Lo := (Version shr 16) and $FF;
Ver_Minor_Hi := (Version shr 8) and $FF;
Ver_Minor_Lo := Version and $FF;
oder in C:
Delphi-Quellcode:
Ver_Major_Hi = (Version >> 24) & 0xFF;
Ver_Major_Lo = (Version >> 16) & 0xFF;
Ver_Minor_Hi = (Version >> 8) & 0xFF;
Ver_Minor_Lo = Version & 0xFF;
Deine jetzige Version macht - vor allem mit der hexadezimalen Multiplikation - nicht allzu viel Sinn. Wenn du die Faktoren in Dezimalform bringst, würde es funktionieren. Dann müsstest du allerdings mit div und mod zurückrechnen, was ich persönlich weniger elegant finde.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat