WochenendFrage 64

Moderator: ModerationP

WochenendFrage 64

Beitragvon dera1 » 22. Okt 2021, 13:51

Hallo Gemeinde,

da sich mein Arbeitgeber, in seiner unendlichen Güte(geistige Umnachtung) dazu entschlossen hat, uns ein 64Bit-Office zu spendieren und ich schon einige Tage damit beschäftigt bin da rum zu reparieren, stellt sich mir zum WochenEnde nur ein Frage:
Was will uns am "LongPtr" das Ptr sagen?
Was es macht weiß ich nun schon.

Schönes WochenEnde
dera
dera1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 425
Registriert: 07. Jul 2014, 10:58

Re: WochenendFrage 64

Beitragvon Nepumuk » 22. Okt 2021, 13:56

Holla,

PoinTeR
De fontibus non est disputandum

Gruß
Nepumuk 8-)
Benutzeravatar
Nepumuk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 15228
Registriert: 10. Aug 2004, 08:40
Wohnort: Regensburg

Re: WochenendFrage 64

Beitragvon DerHoepp » 22. Okt 2021, 14:00

Moin dera,

Pointer will es dir sagen und dir damit Mitteilen, dass der übergebene Wert nicht selbst zu interpretieren ist, sondern als Zeiger auf einen Wert im Arbeitsspeicher verstanden werden will.

Angenommen, du hast einen einfachen Arbeitsspeicher mit zwei Speicheradressen:
Code: Alles auswählen
Speicheradresse  Wert
12054654890      150
12450654465      12054654890


Willst du einer API-Funktion nun mitteilen, sie soll mit dem Wert 12054654890 weiterrechnen, übergibst du als LongPtr den Wert 12450654465 und als Long den Wert 12054654890. Würdest du als LongPtr den Wert 12054654890 übergeben, müsste die API mit dem Wert 150 weiterrechnen und du kannst nicht vorhersagen was dann passiert.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9866
Registriert: 14. Mai 2013, 11:08

Re: WochenendFrage 64

Beitragvon RPP63 » 22. Okt 2021, 14:13

Moin!
Verständnisfrage zum Beispiel von derHoepp:
Bei mir läuft ?CLng(12054654890) (natürlich) in einen Überlauf.

Da ich über APIs kein Hintergrundwissen habe:
War das jetzt nur ein Flüchtigkeitsfehler?

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 11548
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: WochenendFrage 64

Beitragvon Nepumuk » 22. Okt 2021, 14:54

Hallo Ralf,

so:

Code: Alles auswählen
Public Sub Test()
    Dim lngptrNumber As LongPtr
    lngptrNumber = CLngPtr(12054654890^)
    Debug.Print lngptrNumber
End Sub
De fontibus non est disputandum

Gruß
Nepumuk 8-)
Benutzeravatar
Nepumuk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 15228
Registriert: 10. Aug 2004, 08:40
Wohnort: Regensburg

Re: WochenendFrage 64

Beitragvon DerHoepp » 22. Okt 2021, 15:11

Moin Ralf,
RPP63 hat geschrieben:War das jetzt nur ein Flüchtigkeitsfehler?

ja, ich hab einfach ohne hinsehen viele Ziffern eingetippt ohne die Grenzen zu berücksichtigen.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9866
Registriert: 14. Mai 2013, 11:08


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Der Ratlose, mumpel und 12 Gäste