AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer aus C++ nach Delphi ???

Offene Frage von "goose33"
Ein Thema von goose33 · begonnen am 7. Sep 2005 · letzter Beitrag vom 7. Sep 2005
 
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#8

Re: Pointer aus C++ nach Delphi ???

  Alt 7. Sep 2005, 01:37
Bitte, freut mich dass ich helfen kann.

Was der asm-Code macht, sehe ich jetzt auch (die Speicheradresse von @next nach dwError schreiben).

Zitat von goose33:
Noch was :

Code:
DWORD(m_pView) := dwError;
Das is die letzte Zeile unten.
Ich glaub zwar das das so richtig ist aber die beiden * in dem
C++ machen mich ein bischen Stutzig.
Stimmt das denn so ?
Nicht ganz. Das würde den Wert von dwError in die Pointervariable m_pView kopieren. Der Wert soll jedoch an die Speicheradresse kopiert werden, auf die m_pView zeigt:

"(DWORD *) m_pView" entspricht einem Typecast, die Variable m_pView wird nun als Pointer auf ein DWORD angesehen. In Delphi wäre das "PDWORD(m_pView)".

"*(...)" dereferenziert diesen Pointer, damit spricht man das Ziel an, auf das gezeigt wird, und nicht die Pointervariable selbst. In Delphi entspricht das einem angehängten "^".

Komplett also: PDWORD(m_pView)^ := dwError; Wenn m_pView direkt als PDWORD deklariert wäre (m_pView: PDWORD statt m_pView: Pointer), dann könnte man sich den Typecast sparen (m_pView^ := dwError). Je nachdem wie m_pView im restlichen Code benutzt wird, wäre das sinnvoll.

Und sECuRE hat natürlich Recht, wäre besser wenn du den C-Stil nicht 1:1 nach Delphi übersetzt, sondern gleich "ordentlichen" Delphicode daraus machst. Aber das macht noch mehr Arbeit.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz