28. februar 2001 - 14:26Der er
4 kommentarer og 2 løsninger
Windows handle\'s
Jeg har et problem med et program der er lagt om fra D2 til D4. Jeg får Range Check error når jeg forsøger at asigne en windows handle til en integer under Windows NT. I nogle situationer kan windowhandle antage værdier op til 4GB f.eks 3.599.630.986. Nogen der kan forklare det?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jamen problemet eksisterer tilsnyeladende ikke under D2, og en kollega hævder at pointere godt kan have \"negative\" værdier, som det jo vil være hvis den går over MAXINT. Eller skal vi så til at typecaste til unsigned alle steder, hvor en windows handle assignes til en integer?
En pointer kan ikke være negativ, for hvor ligger adresse -7 ?. Men hvis du læser en pointe som en Integer værdi så \"ser den ud til\" at være negative lige så snart MSB er sat. I stedet for LongInt så brug Pointer, LongWord eller DWORD disse er alle 32 bit unsigned
og din kollega har faktisk ret en longword er en unsigned 32bit hvorimod en integer er en signed 32 bit. Og lige til slut Online hjælpen er fejl behæftet der står en THandle til at være en Integer, men i sourcen er det en LongWord
/Martin
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.