1. RE: c structs
- Posted by Chris Bensler <bensler at mail.com> Mar 29, 2002
- 355 views
Thanks Derek, Now I understand that much. What about arrays? and fixed length strings? EG. recName1(1) As Byte recName2 As String * 14 Chris Derek Parnell wrote: > Try this: > > > include tk_mem.e > > -- Type POINT > ptX = allot( Long ), > ptY = allot( Long ), > SIZEOF_POINT = allotted_size(), > > -- Type MSG > msgHWnd = allot( Long ), > msgMessage = allot( UInt ), > msgWParam = allot( Long ), > msgLParam = allot( Long ), > msgTime = allot( DWord ), > msgPtX = allot( Long ), > msgPtY = allot( Long ), > SIZEOF_MSG = allotted_size() > > > You can then do something like: > > atom hPoint > > hPoint = acquire_mem(0, SIZEOF_POINT) > store(hPoint, ptX, xvalue) > store(hPoint, ptY, yvalue) > > and > > xvalue = fetch(hPoint, ptX) > yvalue = fetch(hPoint, ptY) > > > Unless you want to use the low-level access methods: > > > -- Type POINT > contant > ptX = 0, > ptY = 4, > SIZEOF_POINT = 8, > > -- Type MSG > msgHWnd = 0, > msgMessage = 4, > msgWParam = 8, > msgLParam = 12, > msgTime = 16, > msgPtX = 20, > msgPtY = 24, > SIZEOF_MSG = 28 > > > You can then do something like: > > atom hPoint > > hPoint = allocate(SIZEOF_POINT) > poke4(hPoint + ptX, xvalue) > poke4(hPoint + ptY, yvalue) > > and > > xvalue = peek4s(hPoint+ptX) > yvalue = peek4s(hPoint+ptY) > > ----------- > Derek. > > ----- Original Message ----- > From: "Chris Bensler" <bensler at mail.com> > To: "EUforum" <EUforum at topica.com> > Sent: Friday, March 29, 2002 11:28 PM > Subject: c structs > > > > I'm trying to convert some structures to eu, and I'm not sure of how > > some things are stored. > > > > for example, here are some VB type declares: > > > > Type POINTAPI > > x As Long > > y As Long > > End Type > > > > Type MSG > > hwnd As Long > > message As Long > > wParam As Long > > lParam As Long > > time As Long > > pt As POINTAPI > > End Type > > > > what would the struct size and offsets be? does a struct use any bytes <snip>