EuCom

new topic     » topic index » view thread      » older message » newer message

Matt, I just wanted to mention that there is a problem in call_interface_ptr(),
actually the problem is really in fptr.e in call_stdcall_proc():

First argument of MediaDet_WriteBitmapBits is
double which is 8 bytes long. call_interface_ptr() expects
that all arguments are 4 bytes long because it uses poke4().
It should use poke() and should take another argument:
params_sizes. We are unable to call function with parameters which are char (=1
byte) for example.
I think that it would be simplest if it would imitate the way Euphoria dll
calling functions work: define_c_func...
As I said I found workround but future people using EuCom will probably get
confused over this.

frame_pos_bytes = atom_to_float64 (frame_pos)
retVal = call_interface_ptr (this, vtbl, MediaDet_WriteBitmapBits,
    -- split double into two atoms.
bytes_to_int (frame_pos_bytes [1..4]) & bytes_to_int (frame_pos_bytes
    [5..8])
    & {dest_width, dest_height, dest_fname_ptr})

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu