Verfasst: 13.07.2006 13:10
Eigendlich währe das möglich. Die Liste wird (soweit ich weis) als Pointer übergeben.
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Macro GetListPtr(ptrname, listname)
MOV Eax, t_#listname
MOV [p_#ptrname], Eax
EndMacro
Interface test
getlist(a.l, *p)
EndInterface
Structure ctest
*vt
*getlist
EndStructure
Procedure test_getlist(*this.ctest, a.l, list.l())
Debug "a ist " + Str(a)
ForEach list()
Debug "element enthält: " + Str(list())
Next
EndProcedure
Define.test a
Define.ctest b
b\vt = @b+4
b\getlist = @test_getlist()
a = @b
;- end init
NewList k.l()
AddElement(k())
k() = 1
AddElement(k())
k() = 2
AddElement(k())
k() = 3
AddElement(k())
k() = 4
AddElement(k())
k() = 5
*p
GetListPtr(p, k)
a\getlist(666, *p)