DLLLoaderHelper

Add a directory to DLL search path for Windows.

Say you are building a library, :library_name, which loads some 3rd party shared libraries from
:code.priv_dir(:library_name)/lib. It’s quite easy to add rpath on *nix systems, but we don’t really have
rpath in Windows.

Therefore, we have to use AddDllDirectory to manually add the directory that contains these
.dll files to the search path.

Usage

:ok = 
  case :os.type do
    {:win32, _} -> DLLLoaderHelper.addDLLDirectory("#{:code.priv_dir(:library_name)}/lib")
    _ -> :ok
  end

Note that calling DLLLoaderHelper.addDLLDirectory/1 on *nix systems will NOT have any effect, and :ok will be returned.

Installation

If available in Hex, the package can be installed
by adding dll_loader_helper to your list of dependencies in mix.exs:

def deps do
  [
    {:dll_loader_helper, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc
and published on HexDocs. Once published, the docs can
be found at https://hexdocs.pm/dll_loader_helper.

GitHub

View Github