
23 Sep
2001
23 Sep
'01
6:58 p.m.
At 2001-09-23 04:04, Marcin 'Qrczak' Kowalczyk wrote:
It would be impossible then to directly call a C function with a parameter declared as a const pointer. It's illegal in C to have mismatching prototypes of the same function.
You can always do this: module MyModule where { foreign import StringCopy :: Ptr Int8 -> Ptr Int8 -> IO (); } which autogenerates this header: extern "C" { void MyModule__StringCopy(signed char* a,signed char* b); } which the user can implement like this: char* strcat(char* dest, const char* src); void MyModule__StringCopy(char* dest,char* src) { strcat(dest,src); } (assuming char and signed char are identical). -- Ashley Yakeley, Seattle WA