Seite 3 von 3

Re: SizeOf( structure ) / ASCII-Größe unter Unicode ermittel

Verfasst: 24.01.2018 22:19
von Kurzer
Verdammt, das ist mir entgangen - peinlich. :oops:
Danke für den Hinweis. :allright:

Nachtrag @mk-soft:

Entweder übersehe ich wieder etwas oder es geht tatsächlich nicht, wenn ich deine BaseClass benutze (also die BaseClass Struktur mit meiner BHC-Struktur erweitere, so wie es Deine Klasse vorsieht.

Folgende Prozedur mit dem Macroaufruf ist gegeben:

Code: Alles auswählen

	Procedure InitStructure(*this.strBHC_Database)
		SetAscii(*this\strBHC_Header\sMagicWord, #BHC_HeaderMagicWord)
		;... weiterer Code
	EndProcedure
Die obige Prozedur wird aus der Init() Prozedur aus aufgerufen, die Deine BaseClass bei Instanzierung des Objekts aufruft:

Code: Alles auswählen

	Procedure Init(*this.strBHC_Database)
		Debug "Initialize BHC_Database"
		; weiterer Code
		InitStructure(*this)
	EndProcedure : AsInitializeObject(Init)
Das Macro SetAscii() wird bei der Compilierung wie folgt aufgelöst:

Code: Alles auswählen

PokeS(@*this\strBHC_Header\sMagicWord, #BHC_HeaderMagicWord, SizeOf(*this\strBHC_Header\sMagicWord), #PB_Ascii)
Und der Compiler bricht an dieser Stelle mit "Syntax Fehler" ab.

Bild

Die Textkonstante #BHC_HeaderMagicWord habe ich auch schon gegen "Test" getauscht - ohne Erfolg.

Re: SizeOf( structure ) / ASCII-Größe unter Unicode ermittel

Verfasst: 24.01.2018 23:32
von mk-soft
Schade...

PB kann wohl nicht die Struktur auflösen (Bug?)

Code: Alles auswählen

Structure strBHC_Header
  sMagicWord.a[4]
  wDatabaseType.w
  sUserdefinedDatabaseTypecode.a[8]
  lVersion.l
  sDescription.a[30]
EndStructure

; Properties
Structure sDataSet ; Extends sBaseClass
  Header.strBHC_Header
  Count.i
EndStructure

Macro SetAscii(Destination, Text)
  PokeS(@Destination, Text, SizeOf(Destination), #PB_Ascii)
EndMacro

Macro GetAcsii(Source)
  PeekS(@Source, SizeOf(Source), #PB_Ascii)
EndMacro

Global test.sDataSet

; SetAscii(test\Header\sMagicWord, "1234") ; Syntax error

Debug SizeOf(sDataSet) ; Ok
Debug SizeOf(sDataSet\Header) ; Ok
; Debug SizeOf(sDataSet\Header\sMagicWord) ; Bug ?
Es wird auch keine Vervollständigung angeboten

Re: SizeOf( structure ) / ASCII-Größe unter Unicode ermittel

Verfasst: 25.01.2018 11:05
von Kurzer
Danke fürs Bestätigen und auch, dass du den bugreport im englischen forum schon geschrieben hast.