In my case, these are declared functions.
function dlopen (lpLibFileName: PAnsiChar): HMODULE; stdcall; external 'kernel32.dll' name 'LoadLibraryA';
function dlclose(hLibModule: HMODULE): Boolean; stdcall; external 'kernel32.dll' name 'FreeLibrary';
function dlsym (hModule: HMODULE; lpProcName: PAnsiChar): Pointer; stdcall; external 'kernel32.dll' name 'GetProcAddress';
Please don't confuse people! These functions also exist in Windows.
But most people are better off using the default features.
No, dlopen and dlclose do
NOT exist on Windows
as dlopen and dlclose.
What you are doing there is just
re-mapping LoadLibraryA from kernel32.dll to a function called dlopen.
But as a name, dlopen it doesn't not exists on Windows.
For Windows the function LoadLibrary is already defined.
BTW. Even on Linux you can use the LoadLibrary, which is re-mapped in FPC to dlopen()
Of course you can do it the other way around (like you did) but for FPC these (LoadLibrary) is already standard defined.