Seite 1 von 2

"Native Typen können nicht mit Zeigern verwendet werden."

Verfasst: 12.04.2018 13:23
von Josef Berger
Werte Gemeinde!

Über Gockel (unredl. Google) stieß ich auf Ihre Internetz-Seite und auf dieses Forum.
Ich bin mit der Demo-Version sehr zufrieden und habe auch Anleitungsvideos (unredl. Tutorial) auf DuRöhre (unredl. "YouTube") angeschaut.
Bevor ich die Vollversion kaufen werde, möchte ich es noch ausführlich testen.

Beim Schreiben einiger Testbeispiele kam ich zum folgenden Problem: Native Typen können nicht mit Zeigern verwendet werden.

Mein Quelltext (unredl. Code) sieht folgendermaßen aus:

Code: Alles auswählen

Structure FensterEigenschaften
  Nummer.i
  Position.i
  Groesse.i
  *Adresse.i
  Ueberschrift.s
  Einstellungen.s
EndStructure
Warum funktioniert es nicht? Ich habe die mitgelieferte Hilfe genau angeschaut, gelesen und umgesetzt wie es festgelegt ist. Was mache ich trotzdem falsch?

Hoffend,
Josef Berger

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 12.04.2018 13:27
von RSBasic
Du versuchst, ein Pointer (*Adresse.i) mit einem Datentyp zu definieren, aber das ist nicht möglich/notwendig.
Entferne einfach ".i" am Ende der Zeile.

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 12.04.2018 13:30
von Kiffi
@RSBasic: Zeiger (unredl. Pointer)

<scnr>

@Josef Berger: Zwinker (unredl. :wink:)

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 12.04.2018 19:31
von ccode_new
Oder Herr Berger verwendet eine ältere PureBasic-Version ;)

-> Da ging so etwas nämlich noch.

Aber es wird nicht benötigt und ist damit eigentlich sinnlos.

-> Daher wurde diese Möglichkeit wohl auch entfernt.

Hier einmal ein Zeiger-Beispiel:

Code: Alles auswählen

x.i = 12
Debug @x

y.i = 12
*y = @x+8 ;An welcher Speicherstelle soll es denn los gehen ?

*z = @x+10 ;Gefährliches Beispiel: Hier werden einfach ein paar Bytes dazwischen geschrieben.
PokeI(*y, 129)
PokeI(*z, 92)
Debug *y ;8 Stellen weiter als x
Debug *z ;Dazwischen! Kann gefährlich werden!
Debug PeekI(*y) ;Jetzt stehen hier leider keine 129 mehr.
Debug PeekI(*z)

;Besser!
*z = AllocateMemory(8) ;Beliebiger Speicher ab deiner Variablen-Hausnummer(Adresse/Zeiger/Pointer/..whatever).
PokeI(*y, 129)
PokeI(*z, 92)
Debug *z
Debug PeekI(*y)
Debug PeekI(*z)

Structure ZeigerTest
  *zeiger1
  *zeiger2
  *zeiger3
  keinZeiger.l
EndStructure

;Eine Zeigeradresse hat genau die Größe einer Integer-Variable (Auch in einer Structure)

Debug SizeOf(ZeigerTest\zeiger1) ;Ein Test!
Debug OffsetOf(ZeigerTest\zeiger2); Ein anderer Test!
Debug OffsetOf(ZeigerTest\zeiger3)
Debug SizeOf(ZeigerTest\keinZeiger)

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 13.04.2018 10:20
von Josef Berger
Werter Herr RSGrundausstattung!

Ich danke Ihnen für die Lösung, die ermöglicht, dass mein Quelltext (unredl. Code) übersetzt (unredl. compilieren) werden kann.

Allerdings bitte ich Sie, mich zu siezen, da wir uns nicht kennen!

Dankend,
Josef Berger

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 13.04.2018 10:20
von Josef Berger
Werter Herr cquelltext_neu!

Ich benutze die Version 5.62. Ist das eine ältere Version wie Sie sagten?

Fragend,
Josef Berger

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 13.04.2018 11:12
von mhs
Josef Berger hat geschrieben:Werter Herr RSGrundausstattung!
Josef Berger hat geschrieben:Werter Herr cquelltext_neu!
Sehr geehrter Herr Berger,

ich möchte Sie höflichst darauf aufmerksam machen, zukünftig die Forenmitglieder mit ihren echten Benutzernamen / Nicknames anzusprechen, alles andere wäre mehr als unredlich.

Mit freundlichen Grüßen
Michael Hack

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 13.04.2018 12:53
von ccode_new
Josef Berger hat geschrieben:Werter Herr cquelltext_neu!

Ich benutze die Version 5.62. Ist das eine ältere Version wie Sie sagten?

Fragend,
Josef Berger
1. nette Antwort.

2. Die Aussage war anders gemeint.
Sie (ja hier kommt kein du) würden feststellen das bei älteren PureBasic-Versionen der Variablenzusatz bei Zeigern noch erlaubt war.

3. Ich hoffe ihnen gefällt PureBasic bis jetzt.

4. Viel Spaß mit ihren (PureBasic-)Projekten.

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 15.04.2018 14:50
von NicTheQuick
Was soll der Mist? Hier wird sich gedutzt. Dafür muss man sich nicht kennen. Das ist im Internet bei ungeschäftlichen Beziehungen so.

Re: "Native Typen können nicht mit Zeigern verwendet werden.

Verfasst: 15.04.2018 15:10
von Josh
NicTheQuick hat geschrieben:Was soll der Mist? Hier wird sich gedutzt. Dafür muss man sich nicht kennen. Das ist im Internet bei ungeschäftlichen Beziehungen so.
Das wäre unredlich. Siehe hier