# dll_loader_helper_beam
[](https://github.com/cocoa-xu/dll_loader_helper_beam/actions/workflows/windows.yml)
[](https://hex.pm/packages/dll_loader_helper_beam)
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`](https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-adddlldirectory) to manually add the directory that contains these
.dll files to the search path.
## Usage
```erlang
:ok =
case os:type() of
{win32, nt} -> dll_loader_helper_beam:add_dll_directory("/SOME/DIRECTORY")
_ -> ok
end
```
Note that calling `dll_loader_helper_beam:add_dll_directory/1` on *nix systems will NOT have any effect, and `ok` will be returned.
## Installation
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `dll_loader_helper_beam` to your list of dependencies:
```erlang
{deps, [
dll_loader_helper_beam
]}.
```
Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at <https://hexdocs.pm/dll_loader_helper_beam>.