AGB  ·  Datenschutz  ·  Impressum  







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

Adresse eines pointers auslesen

Ein Thema von ximo · begonnen am 25. Mär 2006 · letzter Beitrag vom 27. Mär 2006
Antwort Antwort
ximo

Registriert seit: 25. Mär 2006
Ort: Sóller
6 Beiträge
 
Delphi 5 Enterprise
 
#1

Adresse eines pointers auslesen

  Alt 25. Mär 2006, 19:18
Hallo, ich möchte die Adresse eines pointers auslesen, um diese dann einem anderen zuzuweisen.

das Problem ist, ich möchte nachfolgenden für c++ geschriebene activeX function nutzen. GpsPos ist eine komplexe Structur, in der die Function das Ergebnis speichert. Delphi akzeptiert für *GpsPos aber nur einen Integer bzw. Longint-Wert und keinen Zeiger auf GpsPos. In C ist Pointer und long das gleiche und kann ausgetauscht bzw. zugewiesen werden.
Ich würde jetzt gerne den Wert der Speicherstelle auf den GpsPos zeigt (nicht den Inhalt) auslesen und dann als longint an die Function übergeben.


1.1 GetLastPosition(szID,*GpsPos)
This method return from the Database the last know position of the terminal.

Parameters:

[in] LPCTSTR szId.

String Terminal Identification.

[in] LONG *GpsPos.

Pointer to the GpsPos structure.



Return:

ERRORCODE. (View Error Codes Table).



Comments:

The application must allocate the position structure and pass to this method a pointer to this structure.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Adresse eines pointers auslesen

  Alt 25. Mär 2006, 19:30
Zeigertypen sind letztendlich auch nur Zahlen, auch wenn die Typprüfung des Compilers diese beiden Arten unterscheidet. Wenn du die Prüfung umgehen willst, einfach casten:

Delphi-Quellcode:
var
  p: Pointer;

SomeFunc(Integer(p)); //oder ein anderer Typ als Integer
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
ximo

Registriert seit: 25. Mär 2006
Ort: Sóller
6 Beiträge
 
Delphi 5 Enterprise
 
#3

Danke

  Alt 26. Mär 2006, 09:18
Danke, das hat mich ein Stück weiter gebracht. Ximo
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Adresse eines pointers auslesen

  Alt 26. Mär 2006, 10:07
Da pointer aber nie negative Adressen haben können wäre es auch sinnvoller nicht zu Integer sondern zu DWORD/Cardinal zu casten.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
ximo

Registriert seit: 25. Mär 2006
Ort: Sóller
6 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Adresse eines pointers auslesen

  Alt 26. Mär 2006, 19:31
im Prinzip hast du recht, aber Delphi aceptiert nur integer bzw. longint
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#6

Re: Adresse eines pointers auslesen

  Alt 27. Mär 2006, 11:14
Im Grunde ist es auch egal, da Delphi normaler Weise eh nur 2 GB adressieren kann somit hätte man mit 'nem Integer eh vorteile, so ist z.B. alles kleiner 0 ein ungültiger Zeiger ^_^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Adresse eines pointers auslesen

  Alt 27. Mär 2006, 12:18
Zitat von himitsu:
somit hätte man mit 'nem Integer eh vorteile, so ist z.B. alles kleiner 0 ein ungültiger Zeiger ^_^
Nicht ganz.
  • In den oberen 2 GB (4GB-2GB) liegt Betriebssystemcode und auch der SharedMemory-Bereich.
  • Die CPU nutzt immer vorzeichenlose Adressen, also wird der negative Wert als vorzeichenlos interpretiert und man steht somit hinter dem 2GB Adress-Bereich.
  • In 64-Bit Systemen kann man einem 32-Bit Programm gestatten 4 GB für eigene Daten/Code zu nutzen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:02 Uhr.
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