A portable way to build the filename of a module. The platform-specific prefix and suffix are added to the filename, if needed, and the result is added to the directory, using the correct separator character.
The directory should specify the directory where the module can be found. It can be NULL or an empty string to indicate that the module is in a standard platform-specific directory, though this is not recommended since the wrong module may be found.
For example, calling Module.buildPath on a Linux system with a directory of /lib and a module_name of "mylibrary" will return /lib/libmylibrary.so. On a Windows system, using \Windows as the directory it will return \Windows\mylibrary.dll.
the directory where the module is. This can be NULL or the empty string to indicate that the standard platform-specific directories will be used, though that is not recommended
the name of the module
the complete path of the module, including the standard library prefix and suffix. This should be freed when no longer needed