Seite 1 von 1

[Erledigt] ASM Fehler bei Modulen.

Verfasst: 30.06.2013 02:45
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

Re: ASM Fehler bei Modulen.

Verfasst: 30.06.2013 03:55
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

Re: ASM Fehler bei Modulen.

Verfasst: 30.06.2013 12:04
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.

Re: ASM Fehler bei Modulen.

Verfasst: 30.06.2013 12:11
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

Re: [Erledigt] ASM Fehler bei Modulen.

Verfasst: 01.07.2013 01:44
von Andreas21
In Beta 5 behoben.

Kann gelöscht werden.

Re: [Erledigt] ASM Fehler bei Modulen.

Verfasst: 01.07.2013 09:01
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.