[Contents] [Back] [Prev] [Up] [Next] [Forward]

# Package Glib.Module

This package provides wrapper code for dynamic module loading

- Glib.Module Types
- Glib.Module Subprograms

## Types

    type G_Module is new C_Proxy;

    type Module_Flags is mod 2 ** 32;

    type Pointer is private;

| This is typically a pointer to procedure/function.

## Subprograms

    function Module_Supported      return Boolean;

| Return True if dynamic module loading is supported

    function Module_Open
      (File_Name          :        String;
       Flags              :        Module_Flags
                           := Module_Bind_Lazy)
       return G_Module;

| Open a module `file_name' and return handle, which is null on error.

    function Module_Close
      (Module             :        G_Module)
       return Boolean;

| Close a previously opened module, return True on success.

    procedure Module_Make_Resident
      (Module             :        G_Module);

| Make a module resident so Module_Close on it will be ignored

    function Module_Error          return String;

| Query the last module error as a string

    procedure Generic_Module_Symbol
      (Module             :        G_Module;
       Symbol_Name        :        String;
       Symbol             : out    Pointer;
       Success            : out    Boolean);

| Retrieve a symbol pointer from `module'. Success is set to True on success.

    function Module_Name
      (Module             :        G_Module)
       return String;

| Retrieve the file name from an existing module

    function Module_Build_Path
      (Directory          :        String;
       Module_Name        :        String)
       return String;

Build the actual file name containing a module.
`directory' is the directory where the module file is supposed to be, or the null string in which case it should either be in the current directory or, on some operating systems, in some standard place, for instance on the PATH. Hence, to be absolutely sure to get the correct module, always pass in a directory. The file name consists of the directory, if supplied, and `module_name' suitably decorated accoring to the operating system's conventions (for instance lib*.so or *.dll).

No checks are made that the file exists, or is of correct type.

[Contents] [Back] [Prev] [Up] [Next] [Forward]