Re: Eu 2.4, c funcs and ExoticaX
- Posted by Robert Craig <rds at RapidEuphoria.com> Sep 02, 2003
- 366 views
dm31 at uow.edu.au wrote: > I've got a new version of the Perlin Noise Library coded > (v0.5.1) which has had major rewrites done. However, for the > demo's that need to use ExoticaX, it works with Eu2.3 but not > Eu2.4, below is the error. > > My question is, how do I fix the c func calling routines to > work with Eu2.4?? > > Cheers, > Dan > > Z:\My Documents\PNL\PNL-v0.5.0\dll.e:48 in function > define_c_proc() > Invalid argument type > ... called from Z:\My Documents\PNL\PNL-v0.5.0 > \DirectX\exotica_api.ew:713 in fun > ction link_c_proc2() > ... called from Z:\My Documents\PNL\PNL-v0.5.0 > \DirectX\exotica_api.ew:736 in pro > cedure link_exotica_dll_routines() > ... called from Z:\My Documents\PNL\PNL-v0.5.0 > \DirectX\exotica_api.ew:1105 > --> see ex.err In 2.4, define_c_proc() and define_c_func() check the argument types (and return type) that you specify to ensure that they belong to the set of C_ or E_ constants defined in dll.e. 2.3 quietly accepted any value as an argument type, with possible incorrect results when you actually called the C routine. I don't have exotica_api.ew in front of me, but if you have no idea about the correct argument types for the C function, try replacing any bogus type values, i.e. ones that are not in the range C_CHAR ... C_DOUBLE, with (say) C_INT. Maybe someone with the code will have a better idea. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com