DyLibSymbol

Returns the address of a function or variable in a dll

Syntax
   Declare Function DyLibSymbol ( ByVal libhandle As Any Ptr, ByRef symbol 
   As String ) As Any Ptr
   Declare Function DyLibSymbol ( ByVal libhandle As Any Ptr, ByVal symbol 
   As Short ) As Any Ptr

Usage
   result = DyLibSymbol ( libhandle, symbol )

Parameters
   libhandle
      The Any Ptr handle of a DLL returned by DyLibLoad
   symbol
      A String containing name of the function, or variable in the library 
      to return the address of.  In Windows only, can also be a Short 
      containing the ordinal of the function/variable.

Return Value
   A Pointer to the function or variable in the library.

   If the function fails, the return value is 0.

Description
   DyLibSymbol returns a pointer to the variable or function named symbol , 
   in the dll pointed by libhandle. libhandle is obtained by loading the 
   dll with DyLibLoad. The symbol must have been Exported in the dll.
   If libhandle is 0, the symbol is searched in the current executable or 
   dll.

   If using cdecl functions, only the name of the procedure needs to be 
   specified. If dynamically linking to a function created using STDCALL 
   (default in windows), then the function must be decorated. To decorate a 
   function, use its name, '@', then the number of bytes passed as 
   arguments. For instance if the function FOO takes 3 integer arguments, 
   the decorated function would be 'FOO@12'. Remember, without an explicit 
   Alias, the procedure name will be uppercase.

   If linking to a dll created in Visual C++(tm), decoration need not be 
   used. For GCC, decoration is needed.

   Note: The dylibsymbol, if failing, will attempt to automatically 
   decorate the procedure, from @0 to @256, in 4 byte increments.

Example
   See the dynamic loading example on the Shared Libraries page.

Platform Differences
   * Ordinals are not supported on Linux, 0 is always returned.
   * Ordinals are not supported on DOS, 0 is always returned.
   * Windows does not support DyLibSymbol use with variables (only with 
     procedures).
   * DOS: see specific Shared Libraries - DOS page

Dialect Differences
   * Not available in the -lang qb dialect unless referenced with the 
     alias __Dylibsymbol.

Differences from QB
   * New to FreeBASIC

See also
   * DyLibLoad
   * DyLibFree
   * Export

