Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi LPARAM nur bei Zeigern? 64Bit (https://www.delphipraxis.net/197741-lparam-nur-bei-zeigern-64bit.html)

KodeZwerg 1. Sep 2018 00:42

AW: LPARAM nur bei Zeigern? 64Bit
 
Zitat:

Zitat von EWeiss (Beitrag 1412174)
Zudem möchte ich die 32Bit Kompatibilität wenn möglich mit gleichem Code erhalten.

Delphi-Quellcode:
{$IFDEF WIN64}
  bla;
{$ELSE}
  blubb;
{$ENDIF}
So eventuell bei anderen Dingen?

EWeiss 1. Sep 2018 00:47

AW: LPARAM nur bei Zeigern? 64Bit
 
Zitat:

Zitat von KodeZwerg (Beitrag 1412176)
Zitat:

Zitat von EWeiss (Beitrag 1412174)
Zudem möchte ich die 32Bit Kompatibilität wenn möglich mit gleichem Code erhalten.

Delphi-Quellcode:
{$IFDEF WIN64}
  bla;
{$ELSE}
  blubb;
{$ENDIF}
So eventuell bei anderen Dingen?

Wie viele 1000 Zeilen soll ich damit vergleichen? :)
Ich lasse es erst mal wie es ist und werde dann handeln wenn es angebracht ist.
Thema erledigt. Danke.

gruss

himitsu 1. Sep 2018 00:52

AW: LPARAM nur bei Zeigern? 64Bit
 
Delphi-Quellcode:
Integer(@MyCharArray)
ist falsch, weil es unter 64 Bit den Wert abschneidet und Daten vernichtet.

MAKELONG an LPARAM gibt keinerlei Probleme, da der kleinere Wert immer in den Größeren rein passt.


Zitat:

Zitat von p80286 (Beitrag 1412164)
Soweit ich das verstanden habe erwartet Windows einen 64Bit Wert, MAKELONG liefert aber nur einen 32Bit Wert. D.h. die hoch(wertigen) 32Bit sind nicht definiert.

Falsch verstanden.

TypeCast bei Integer-Typen ... dabei wird korrekt umgewandelt, also die höheren Bits werden mathematisch "aufgefüllt".

EWeiss 1. Sep 2018 00:54

AW: LPARAM nur bei Zeigern? 64Bit
 
Zitat:

Integer(@MyCharArray) ist falsch, weil es unter 64 Bit den Wert abschneidet und Daten vernichtet.
Ja deshalb verwende ich ja bei Pointern auch LPARAM.

Zitat:

MAKELONG an NativeUInt gibt keinerlei Probleme, da der kleiner Wert immer in den größeren rein passt.
Ok Danke.. dann ist das geklärt und ich weis worauf ich achten muss.

gruss

p80286 1. Sep 2018 09:25

AW: LPARAM nur bei Zeigern? 64Bit
 
Zitat:

Zitat von himitsu (Beitrag 1412178)
TypeCast bei Integer-Typen ... dabei wird korrekt umgewandelt, also die höheren Bits werden mathematisch "aufgefüllt".

Danke, gut zu wissen.
Gruß
K-H

himitsu 1. Sep 2018 13:21

AW: LPARAM nur bei Zeigern? 64Bit
 
Neu bei expliziten Casts von ordinalen Typen (z.B. Integer) wo beie Seiten die selbe Größe (Bits/Bytes) besitzen, da wird ohne Wert-Umrechnung gearbeitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz