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)`