Habe hier eine Funktion die ich irgendwo mal im Board gefunden habe die es ermöglicht eine gesammte strucktur zu übergeben. Unter PB 3.94 hat sie perfekt funktioniert. Habe den Source auf Version 4 Adaptiert, jedoch bekomme ich immer eine ASM Fehlermeldung das ein undefiniertes Symbol sei??

Das verstehe ich nicht. Ist es möglich das die Struckturen nicht mehr global sind?
Wenn ich den code der in DisplayAndHandle() ist lokal lasse funzt es perfekt!
Code: Alles auswählen
Structure wettkampf
Spielort.s
datum.s
gegner.s
Ergebnis.s
Spieler_1.s
Spieler_2.s
Spieler_3.s
Spieler_4.s
Spieler_5.s
Spieler_6.s
Spieler_7.s
Spieler_8.s
Spieler_9.s
Spieler_10.s
Spieler_11.s
Spieler_Ersatz1.s
Spieler_Ersatz2.s
Schiedsrichter.s
EndStructure
Global match.wettkampf
Global Dim jahresergebnisse.wettkampf(50)
Global Dim statistik.wettkampf(1000)
Procedure CopyStructure(source,dest,Size,StructureMap)
Protected i, StructureMapOffset
StructureMapOffset = 0
For i = 0 To Size-1
If PeekL(StructureMap+StructureMapOffset) = i
MOV Ecx, i
MOV Edx, Ecx
ADD Ecx, dest
ADD Edx, source
MOV Edx, dword[Edx]
CALL SYS_FastAllocateStringFree
StructureMapOffset+4
i+3
Else
PokeB(dest+i,PeekB(source+i))
EndIf
Next
EndProcedure
Procedure DisplayAndHandle()
Debug Str(@match\Spielort)+" :"+match\Spielort
Debug Str(@jahresergebnisse(8)\Spielort)+" :"+jahresergebnisse(8)\Spielort
Debug "Copy..."
CopySrc = @match
CopyDest = @jahresergebnisse(8)
CopySize = SizeOf(wettkampf)
CopyStructureMap = 0
!MOV dword[p.v_CopyStructureMap], p.s_wettkampf ;s_<Structure>
CopyStructure(CopySrc,CopyDest,CopySize,CopyStructureMap)
Debug Str(@match\Spielort)+" :"+match\Spielort
Debug Str(@jahresergebnisse(8)\Spielort)+" :"+jahresergebnisse(8)\Spielort
EndProcedure
match\Spielort = "Wiesbaden"
match\datum = "24.7.2004"
match\gegner = "GSV"
match\Ergebnis = "2:4"
match\Spieler_1 = "Huber"
match\Spieler_2 = "Müller"
match\Spieler_3 = "Eszgön"
match\Spieler_4 = "Krallmann"
match\Spieler_5 = "König"
match\Spieler_6 = "Lindauer1"
match\Spieler_7 = "Lindauer2"
match\Spieler_8 = "Schwieken"
match\Spieler_9 = "Rülberg"
match\Spieler_10 = "Steenken"
match\Spieler_11 = "Schwelm"
match\Spieler_Ersatz1 = "Zeppelin"
match\Spieler_Ersatz2 = "Barth"
match\Schiedsrichter = "von Weilen"
DisplayAndHandle()