RE: poke4 won't accept my 32bit values
- Posted by Chris Bensler <bensler at mailops.com> Mar 19, 2001
- 576 views
I tried changing the TranslateMessage Param to C_UINT,C_LONG,C_ULONG, etc.. but no go.. Also, I've never attempted to convert the examples to C.. not really any point seeing as the original demos were FROM C. Chris just a bit of psuedo-code to maybe help you to uderstand my problem better... not functional code. procedure names aren't even accurate.. This is how the original demos work.. <ORIGINAL PSUEDO CODE> function Init_Loop() EXOTICA_INIT() etc... etc... end function procedure Animate_Scene() Set_Color(#FFFFFFFF) end procedure function Main_Loop() CLEAR_SURFACE(0) Animate_Scene() -- This contains the calls to set the color of the objects etc.. etc... etc... if KeyPress() = ESCAPE then return 1 end if return 0 end function function Exit_Loop() EXOTICA_EXIT() return 0 end function <END OF ORIGINAL PSUEDO CODE> On calling WinMain, the Init_Loop() will be executed immediately only once, the Main_Loop() will be executed in the message loop, exiting the loop if it returns True.. the Exit_Loop is called at the very end(Not really nessecary to be called from WinMain as it is called at the very end of WinMain with no code specific to WinMain..) <EXOTICAX PSUEDO CODE> exotica_init() -- WinMain is initialized here.. procedure Animate_Scene() Set_Color(#FFFFFFFF) end procedure while not KeyPress() = ESCAPE do clear_surface(0) Animate_Scene() etc... etc... etc... --- exotica_error() contains the message loop to poll for windows messages if exotica_error() then exotica_abort(1) end if end while exotica_exit() <END OF EXOTICAX PSUEDO CODE> This works fine as long as I don't need to poke the color values directly to memory.. But when I do try to poke the values, it says the value is not 32bit. I hope this helps you to understand my dilemna.. Chris Derek Parnell wrote: > > > > C_INT, what should it be? > > > > But even if this is the problem.. it is exclusive to my code.. No > > problems in the original Exotica demos.. > > > > I'm not sure, maybe Robert can chip in here, but C_UINT is a 32-bit > unsigned > integer and C_INT is a 32-bit signed integer. Maybe when Euphoria > invokes > the c_func() routine it converts the supplied parameters based on these > signatures. If it uses C_INT, it might be chopping off the high bits. > > This is just a guess. > > I'm also guessing that its Euphoria interpreter you are having trouble > with. > Is it? Or is this the translated C code? > > ------ > Derek Parnell > Melbourne, Australia > "To finish a job quickly, go slower." > > > >