Alias (Name)

Clause of the Sub and Function statements that provides an alternate 
internal name.

Syntax
   [Declare] { Sub | Function } usablename Alias "alternatename" (...)

Usage
   declare sub usablename Alias "alternatename" ( ... )
      or
   declare function usablename Alias "alternatename" ( ... )
      or
   sub usablename Alias "alternatename" ( ... )
      ...
   end sub
      or
   function usablename Alias "alternatename" ( ... )
      ...
   end function
      or
   type typename Alias "alternatename" ( ... )
      ...
   end type

Description
   Alias gives an alternate name to a procedure.  This alternate name 
   cannot be used within the program to call the procedure, but it is 
   visible (if the function is not private) to the linker when linking with 
   code written in other languages.

   Alias is commonly used for procedures in libraries written in other 
   languages when such procedure names are valid in the other language but 
   invalid in BASIC.  When using Alias with Declare, only the alternate 
   name is used by the linker.

   Differently from normal procedure names, Alias does not change the case 
   of the alternate name, so it is useful when external code requires an 
   exported function with a particular name or with a particular case.

   Alias can be used to specify an alternate name for Type definitions.

   Alias can be used as a modifier that specifies an alternate name 
   mangling for procedure parameters.  See Alias (Modifier)

Example

If there is a sub (without parameter) called xClearScreen in an external 
library and you want to reference it with the name ClearVideoScreen, here 
is sample code to do so:
   Declare Sub ClearVideoScreen Alias "xClearScreen" ()

If there is a function (with parameters and return value) called 
MyFunctioninLib in an external library and you want to reference it with 
the name myfunction, here is sample code to do so:
   Declare Function myfunction Alias "MyFunctioninLib" (ByVal As Long, ByVal As Long, ByVal As ZString Ptr) As Integer

A procedure meant to be used by external C code, exported as MyExportedProc
:
   Function MultiplyByFive cdecl Alias "MyExportedProc" (ByVal Parameter As Integer) As Integer Export
     Return Parameter * 5
   End Function

Differences from QB
   * In QB, Alias only worked with Declare.

See also
   * Declare
   * Export
   * Type (Alias)
   * Alias (Modifier)

