Combinators for binding to C libraries without writing any C
Library ctypes-foreign
Module Dl
type library

The type of dynamic libraries, as returned by dlopen.

exception DL_error of string

An error condition occurred when calling dlopen, dlclose or dlsym. The argument is the string returned by the dlerror function.

type flag =

Flags for dlopen

Note for windows users: Only RTLD_NOLOAD and RTLD_NODELETE are supported. Passing no or any other flags to dlopen will result in standard behaviour: just LoadLibrary is called. If RTLD_NOLOAD is specified and the module is not already loaded, a DL_error with the string "library not loaded" is thrown; there is however no test, if such a library exists at all (like under linux).

val dlopen : ?filename:string -> flags:flag list -> library

Open a dynamic library.

Note for windows users: the filename must be encoded in UTF-8

val dlclose : handle:library -> unit

Close a dynamic library.

val dlsym : ?handle:library -> symbol:string -> nativeint

Look up a symbol in a dynamic library.