From 862a17ef9111af100c017a124893fae5a3897c5d Mon Sep 17 00:00:00 2001 From: Dario Gabriel Lipicar Date: Tue, 22 Sep 2026 19:04:32 -0300 Subject: [PATCH] docs: explain Windows module DLL lookup --- logos-developer-guide.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/logos-developer-guide.md b/logos-developer-guide.md index ecaed22..af78c7b 100644 --- a/logos-developer-guide.md +++ b/logos-developer-guide.md @@ -1033,6 +1033,22 @@ nix build 'github:logos-co/logos-package-downloader#cli' --out-link ./downloader Once your module is packaged and installed into a `modules/` directory (see Parts 3 and 4), you can run it with `logoscore`. +On Windows, the dedicated `logos_host_qt` from +[`logos-module-loader-qt`](https://github.com/logos-co/logos-module-loader-qt) +registers the plugin's directory for DLL searching before loading the plugin. +The registration lasts for the host process's lifetime, including libraries +loaded later by bare name, such as `libpq.dll`. Bundle these libraries and their +dependencies beside the plugin; use metadata `include` for libraries that are +only loaded at runtime and therefore absent from the import table. + +The host also searches its executable directory and System32. It excludes the +current working directory and `PATH` from DLL searching, so adding a directory +to `PATH` is not a way to supply a missing module dependency. This policy applies +to the dedicated Qt module host, not shared-process loaders, `lm`, or `ui-host`. +Older host builds require their existing search-path workaround; deploy the +updated host before removing that workaround from a module. Linux and macOS +continue to use the runtime paths embedded by the build and packaging tools. + ### 6.1 Running with `logoscore` The **`logoscore`** CLI (from `logos-liblogos`) is a headless runtime that can load modules and invoke their methods from the command line.