I'm not concerned with existing Windows libraries APIs (those can be stdcall or cdecl, I was told) , but with C code that you write yourself and that you build with your Haskell code. For instance: GHC will compile .c files given on its command line. Is it safe to assume that C functions compiled that way will have a calling convention matched by 'ccall'? Best, MaurĂcio
I'd say it depends entirely on the API that you are wrapping. Specifically the Win32 API on Windows uses stdcall, also OpenGL, but other more modern APIs use ccall. Visual studio can cope with either calling convention.
Haskell FFI addendum, when talking about calling conventions, says that [...].
Is it safe to assume that whatever is contained in a C file compiled inside a Cabal package in Windows will have a calling convention matched by 'ccall'?