HEX Konstanten / Werte [erledigt]

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

HEX Konstanten / Werte [erledigt]

Beitrag von AUGE_OHR »

hi,

Code: Alles auswählen

#define IMAGE_FILE_MACHINE_I386  0x14c
#define IMAGE_FILE_MACHINE_IA64  0x200
#define IMAGE_FILE_MACHINE_AMD64 0x8664
...
      cMachineType := ( SUBSTR(cBuffer,nPointer+4,2) )
      hHex := cBin2Hex(cMachineType)

      DO CASE
         CASE hHex = IMAGE_FILE_MACHINE_I386
            cText := "for 32bit Machine"

         CASE hHex = IMAGE_FILE_MACHINE_IA64 .OR. hHex = IMAGE_FILE_MACHINE_AMD64
            cText := "for 64bit Machine"

      OTHERWISE
            cText := "unknown Machine"
      ENDCASE
ergibt
oError:args :
-> VALTYPE: N VALUE: 332
-> VALTYPE: N VALUE: 332
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter hat falschen Typ
oError:filename :
oError:genCode : 2
oError:operation : <332>=<332>
oError:osCode : 0
oError:severity : 2
oError:subCode : 3
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von MAIN(34)
ich habe wohl Problem mit HEX Werten / Konstanten ...

ich lese 2 byte mit Fread und will die vergleichen.
für 32bit habe ich nun IMAGE_FILE_MACHINE_I386 0x14c aber im HEX Editor sehe ich
PE_MachineType.PNG
PE_MachineType.PNG (22.65 KiB) 4820 mal betrachtet
da sind die doch in der "falschen" Reihenfolge ???
muss ich die bytes "einzeln" lesen ... von rechts nach links ?
Zuletzt geändert von AUGE_OHR am Fr, 12. Okt 2012 5:08, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: HEX Konstanten / Werte

Beitrag von AUGE_OHR »

AUGE_OHR hat geschrieben:... von rechts nach links ?
Pablo sagt das nennt man "little endian" und mit

Code: Alles auswählen

PeekWord( cWord) == 0x8664
bekommt man den korrekten Vergleich
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: HEX Konstanten / Werte [erledigt]

Beitrag von AUGE_OHR »

was wohl auch geht ohne ot4xb

Code: Alles auswählen

   hHex := Bin2L (cMachineType)
DLL6432.zip
benötigt KEINE Xbase++ Runtime
(648.83 KiB) 306-mal heruntergeladen
nicht wundern das dass File so gross ist ... da ist die Runtime "enthalten" ( nicht Xbase++ )
gruss by OHR
Jimmy
Antworten