When using c2hs, you can use the inline header commands to define global 
variables:

------------------------------------------------------------------------------------------------------
#c
const int HSMYLIBRARY_SOME_VAR = C_MY_VAR;
const char *HSMYLIBRARY_OTHER_VAR = C_OTHER_VAR;
#endc
------------------------------------------------------------------------------------------------------

And then just bind them with foreign imports like any other variable:

------------------------------------------------------------------------------------------------------
foreign import ccall "HSMYLIBRARY_SOME_VAR" someVar :: CInt

foreign import ccall "HSMYLIBRARY_OTHER_VAR" otherVarPtr :: Ptr CChar

otherVar :: String
otherVar = unsafePerformIO (peekCString otherVarPtr)
------------------------------------------------------------------------------------------------------
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to