Show how to call a function in a shared library (without dynamically linking to it at compile-time). In particular, show how to call the shared library function if the library is available, otherwise use an internal equivalent function.

This is a special case of calling a foreign language function where the focus is close to the ABI level and not at the normal API level.



Related task

 OpenGL -- OpenGL is usually maintained as a shared library.


 
'Loading a shared library at run time and calling a function.
 
declare MessageBox(sys hWnd, String text,caption, sys utype)
 
sys user32 = LoadLibrary "user32.dll"
 
if user32 then @Messagebox = getProcAddress user32,"MessageBoxA"
 
if @MessageBox then MessageBox 0,"Hello","OxygenBasic",0
 
'...
 
FreeLibrary user32
 