What would be the best way to, if possible, load a dynamic library and call one of it's functions, when we don't know the name of the function during compile-time?
For example, is there a way to make a program that reads a string from a file and then loads a DLL and searches for and calls a function with its name being the string read from the file?
Help would be very much appreciated.
To call a function in function library, you specify the library and function name. For an example of how to call functions in a library that uses JavaScript, refer to the example in the Load function, see Load. For IPL, use the following example which uses the following format: function_library.
To call a function funcname in C++ library libname with input arguments arg1,arg2,... and output argument retVal , use the MATLAB clib package. MATLAB automatically loads the library when you type: retVal = clib. libname.
dlopen() and dlclose() are present in glibc 2.0 and later. dlmopen() first appeared in glibc 2.3.
Dynamic libraries are linked during the execution of the final executable. Only the name of the dynamic library is placed in the final executable. The actual linking happens during runtime, when both executable and library are placed in the main memory.
There is an example on Wikipedia of all places showing how to use the LoadLibrary() function at runtime. You will see that the function name is specified as a string. You would need to write the code to search for the function name and pass it to similar code.
On Linux you can do this with dlopen() and dlsym() functions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With