PureObject - PureBasic OOP Unterstützung
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Ich würde sagen der Rückgabe Type der Procedure und Declaration
unterscheiden sich.
unterscheiden sich.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
>deswegen sage ich, die Procedure ist nicht vorhanden, sonst müßte ihm die Fehlermeldung ja die Zeile der Procedure rausrücken.
Mit PB 4.1 läuft alles glatt. Deklarieren tu ich die Prozeduren bzw. Methoden ja lediglich in den Klassen. Wenn es da ein Problem geben würde, müsste PureObject nen Error melden. Leider es aber nicht, sondern PB.
Edit:
Selbst dieser code hier verursacht den selbigen Fehler:
Scheint ein bug von PureObject zu sein.
Mit PB 4.1 läuft alles glatt. Deklarieren tu ich die Prozeduren bzw. Methoden ja lediglich in den Klassen. Wenn es da ein Problem geben würde, müsste PureObject nen Error melden. Leider es aber nicht, sondern PB.
Edit:
Selbst dieser code hier verursacht den selbigen Fehler:
Code: Alles auswählen
Class TEST
TEST()
EndClass
Procedure TEST.TEST()
EndProcedure
Und da hab ich den Fehler schon gefunden.
Ausgabe von PureObject:
Man schaue sich diesen Abschnitt an:
Die Funktionen sind als long deklariert. Allerdings geben sie nen int Wert zurück.
Könntest du das bitte so schnell wie möglich fixen? Sonst muss ich leider umsteigen.
Ausgabe von PureObject:
Code: Alles auswählen
Interface TEST
TEST()
Release() : EndInterface : Structure sTEST : *vt : EndStructure : Declare.l ConstructTEST() : Declare.l TEST_Release(*this): Global _VT_TEST
Procedure TEST_TEST(*this.sTEST ) : Protected *thisM.TEST = *this
EndProcedure
; ------------------------------- OOP Constructors, etc. -------------------------------
Procedure ConstructTEST()
Protected *this.sTEST = AllocateMemory(SizeOf(sTEST))
Protected *thisM.TEST = *this
If Not *this : ProcedureReturn #False : EndIf
If Not _VT_TEST And SizeOf(TEST)
_VT_TEST = AllocateMemory(SizeOf(TEST)) ; Global virtual table
CompilerIf Defined(TEST_TEST, #PB_Procedure)
PokeL(_VT_TEST + OffsetOf(TEST\TEST()), @TEST_TEST())
CompilerEndIf
CompilerIf Defined(TEST_Release, #PB_Procedure)
PokeL(_VT_TEST + OffsetOf(TEST\Release()), @TEST_Release())
CompilerEndIf
EndIf
*this\vt = _VT_TEST
CompilerIf Defined(TEST_TEST, #PB_Procedure) = #True
TEST_TEST(*this)
CompilerEndIf
ProcedureReturn *this
EndProcedure
Procedure TEST_Release(*this)
EndProcedure
Code: Alles auswählen
Release() : EndInterface : Structure sTEST : *vt : EndStructure : Declare.l ConstructTEST() : Declare.l TEST_Release(*this): Global _VT_TEST
Könntest du das bitte so schnell wie möglich fixen? Sonst muss ich leider umsteigen.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Hab ich also doch recht gehabt
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Mit PB 4.1 läuft alles glatt.
tja, es wird eben erst neuerdings geprüft, ob Declare und tatsächliche Proc übereinstimmen.
wundert mich halt nur, dass du keine saubere Zeilenangabe bekommst,
aber das hängt womöglich mit dem Preparser zusammen.
tja, es wird eben erst neuerdings geprüft, ob Declare und tatsächliche Proc übereinstimmen.
wundert mich halt nur, dass du keine saubere Zeilenangabe bekommst,
aber das hängt womöglich mit dem Preparser zusammen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Schick dem Inc eine PN und dann sollte er das ja innerhalb kürzester Zeit
beheben können.
beheben können.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.