
That is a shame. I tried both suggestions (specifying position explicitly and recompiling with fvia-c -- i had been using O all along) and neither worked :(.
I also tried using 5.03, and got the following warnings: [ message deleted ]
It looks like there are some prototypes missing:
C:\DOCUME~1\hdaume\LOCALS~1\Temp\ghc920.hc:59: warning: implicit declaration of function `prim_rgb'
GHC might not generate correct calls to these functions unless there is a visible prototype. In fact, taking this example, the definition of prim_rgb is DWORD prim_rgb(BYTE arg1,BYTE arg2,BYTE arg3) but its FFI declaration says foreign import ccall "prim_rgb" unsafe prim_rgb :: Word32 -> Word32 -> Word32 -> IO (Word32) this looks a bit strange - is there a green-card expert out there to explain what's going on? Why have the BYTEs been turned into Word32s? Cheers, Simon