DLL插件加载器

创作者: kassent
已更新:2026-03-04 17:53:20
406KB

关于此 MOD

《仁王3》的dinput8代理加载器,用于加载plugins文件夹中的DLL模组,并生成详细的崩溃日志。
《仁王3》的轻量级dinput8.dll代理加载器。
从以下位置加载 DLL 模组 插件 文件夹,并写入详细的崩溃报告以协助调试。


本模组功能
  • 代理原始系统 dinput8.dll 这样游戏行为就能保持正常。
  • 从以下路径扫描并加载插件DLL: <游戏根目录>/插件.
  • 调用每个插件的 nioh3_插件初始化 入口点。
  • 安装未处理异常日志记录器,并写入崩溃诊断信息。


安装(玩家)
  • 放置此模组的 dinput8.dll 在你的《仁王3》游戏根目录中(与游戏.exe文件同文件夹)。
  • 创建一个 插件 若不存在,请在游戏根目录创建该文件夹。
  • 将DLL模组放入此处 插件.
  • 启动游戏。


日志文件
  • 日志名称: NIOH3插件加载器.log
  • 位置:你的Windows 文档 文件夹


故障排除
若某插件未能载入:
  • 请确保DLL文件位于 <game root>/插件.
  • 确保导出的内容完全一致: **nioh3 插件初始化**.
  • 检查 NIOH3插件加载器.log 针对加载/初始化错误。


模组作者须知
DLL加载器会在游戏完成DRM解压、即将执行WinMain时,在主线程上加载每个插件。此时,你可以直接在DllMain中执行特征码扫描、补丁注入等操作。
你可以导出此功能(非强制):

constexpr uint32_t NIOH3_PLUGIN_API_VERSION = 1;

struct Nioh3PluginInitializeParam
    uint32_t loader_api_version;
    uint16_t game_version_major;
    uint16_t game_version_minor;
    uint16_t game_version_patch;
    uint16_t game_version_build;
    const char* game_version_string;
    `const char* game_root_dir;`
    const char* plugins_dir;
};

外部"C" __declspec(dllexport)
bool nioh3_plugin_initialize(const Nioh3PluginInitializeParam* initialize_param);


卸载
  • 删除 dinput8.dll 来自游戏根目录。
  • 可选移除你的 插件 文件夹及插件DLL文件。


源代码
GitHub

使用 Xmod 解锁 仁王3 的全部潜力 — 今天就探索这些顶级 MOD!