[Gambas-user] Read array of string return from external libraries function

Benoît Minisini gambas at ...1...
Sat Apr 9 11:46:13 CEST 2011


> Thank Benoit!
> 
> One more question about the below basic data structure:
> 
> aStruct * anExternFunc(...)
> 
> with:
> 
> aStruct {
> 
> aClass *data
> aStruct *previous
> aStruct *next
> }
> 
> 
> How to get all *data
> I tried
> 
> pNext = anExternFunc(...)
> while pNext <> null
> 
> pData = Pointer@(pNext)
> 
> ...
> 
> pNext = pData + SizeOf(gb.pointer)*2
> 
> wend
> 
> and failed.
> 

--8<----------------------------------------------------------

pStruct = anExternFunc(...)

While pStruct

  pData = Pointer@(pStruct)

  ...

  pStruct = Pointer@(pStruct + Sizeof(gb.Pointer) * 2)

Wend

--8<----------------------------------------------------------

That should work. Does it?

You can use a memory stream and a structure too:

--8<----------------------------------------------------------

Struct MyDataSlot
  Data As Pointer
  Previous As Pointer
  Next As Pointer
End Struct

...

Dim hMem As Stream
Dim hSlot As MyDataSlot

pStruct = anExternFunc(...)

While pStruct
 
  hMem = Memory pStruct For Read

  hSlot = Read #hMem As MyDataSlot

  pData = hSlot.Data

  ...

  pStruct = Pointer@(hSlot.Next)

Wend

--8<----------------------------------------------------------

Regards,

-- 
Benoît Minisini




More information about the User mailing list