[Erledigt] ASM Fehler bei Modulen.

Für allgemeine Fragen zur Programmierung mit PureBasic.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

[Erledigt] ASM Fehler bei Modulen.

Beitrag von Andreas21 »

Wo könnte hier der Fehler liegen?

Bild

Wenn man den Structure Namen ändern außerhalb des Moduls giebts keinen Fehler.

Code: Alles auswählen

DeclareModule test
  Structure TestStruc
    String.s
  EndStructure
  
  Declare.s GetTest()
  Declare   SetTest(String.s)
EndDeclareModule
  
Module test

  Global temp.TestStruc
  
  Procedure.s GetTest()
    ProcedureReturn temp\String
  EndProcedure
  
  Procedure SetTest(String.s)
    temp\String = String
  EndProcedure
EndModule
  
Structure TestStruc
  String.s
EndStructure

temp.TestStruc
temp\String = "Hello World!"

test::SetTest(temp\String)
Debug test::GetTest()
Diese Beispiel geht nicht z.b. da TestStruc außerhalb des Moduls so nicht nutzbar ist.

Code: Alles auswählen

DeclareModule test
  Structure TestStruc
    String.s
  EndStructure
  
  Declare.s GetTest()
  Declare   SetTest(String.s)
EndDeclareModule
  
Module test

  Global temp.TestStruc
  
  Procedure.s GetTest()
    ProcedureReturn temp\String
  EndProcedure
  
  Procedure SetTest(String.s)
    temp\String = String
  EndProcedure
EndModule

temp.TestStruc
temp\String = "Hello World!"

test::SetTest(temp\String)
Debug test::GetTest()
PB 5.2 Beta 4 x86
Zuletzt geändert von Andreas21 am 01.07.2013 01:44, insgesamt 1-mal geändert.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
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

Re: ASM Fehler bei Modulen.

Beitrag von ts-soft »

Das erste Beispiel scheint mir ein Bug zu sein, das zweite Beispiel ist fehlerhaft und sollte so aussehen:

Code: Alles auswählen

DeclareModule test
  Structure TestStruc
    String.s
  EndStructure
 
  Declare.s GetTest()
  Declare   SetTest(String.s)
EndDeclareModule
 
Module test

  Global temp.TestStruc
 
  Procedure.s GetTest()
    ProcedureReturn temp\String
  EndProcedure
 
  Procedure SetTest(String.s)
    temp\String = String
  EndProcedure
EndModule

temp.Test::TestStruc
temp\String = "Hello World!"

test::SetTest(temp\String)
Debug test::GetTest() 
Hab den Bug gleich mal gemeldet, siehe: http://www.purebasic.fr/english/viewtop ... 17#p416517

Gruß
Thomas
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.
Bild
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: ASM Fehler bei Modulen.

Beitrag von Andreas21 »

Zweite beispiel sollte nur zeigen das die Structure im Modul außerhalb nicht schon definiert ist.
Der Fehler lest mich darauf schlissen das 2 mal versucht wurde die Structure zu definieren.

In Modulen müsste sie aber abgekapselt sein.

So kann man keine Structuren mit dem selben namen im Code nutzen wenn sie schon im Modul vorhanden sind.

z.b. im Module:

Code: Alles auswählen

Structure test
  String.s
endstructure
Und im Code auserhalb von dem Module:

Code: Alles auswählen

Structure test
  Long.l
endstructure
Würde nicht funktionieren.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
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

Re: ASM Fehler bei Modulen.

Beitrag von ts-soft »

Das hatte ich ja so weit verstanden und den Bug gemeldet. Hab Dein erstes Beispiel noch etwas
gekürzt, so das Fred das mit der doppelten definition im ASM-Output schneller findet.

Wollen wir mal hoffen, das dies in der nächsten Version gefixed ist.

Gruß
Thomas
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.
Bild
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: [Erledigt] ASM Fehler bei Modulen.

Beitrag von Andreas21 »

In Beta 5 behoben.

Kann gelöscht werden.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: [Erledigt] ASM Fehler bei Modulen.

Beitrag von RSBasic »

@Andreas21
Ne, es muss ja nicht gelöscht werden. Es reicht ja schon aus, wie du es bereits getan hast, den Thread als Erledigt zu markieren.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten