DLLLoaderHelper

windowsHex.pm

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.

A complete Elixir example available in example/elixir.

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"}
  ]
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.