DLL Manager
More languages
More actions
在 Modloader 中打开 Compatibility → DLL Manager。本指南显示在面板顶部。它会列出 ShroudForge 找到的模组 DLL,并显示它们是否已加载。已知模组已有准备好的配置文件。对于其他 DLL,请在此处选择并确认。
可以使用多个原生 DLL 模组吗?
可以。将每个模组安装在 mods/ 目录下各自独立的文件夹中,并保留作者提供的文件和子文件夹。匹配的配置文件可能已经选择了正确的 DLL。对于没有匹配配置文件的模组,请在 DLL Manager 中打开 Adjust DLL selection。只选择作者指定的入口 DLL。选择加载目标,并确认你信任该 DLL。普通原生库请使用 Normal DLL。只有当 DLL 用于提供 DirectInput 并导出了 DirectInput8Create 时,才选择 DirectInput proxy。单击 Apply selection,然后重启游戏。仅被检测到并不会加载没有配置文件的 DLL。还需要在 DLL Manager 中确认选择、在 native-plugin.ini 或 dinput8-chain.ini 中声明,或由其 Lua 模组注册。
下载的模组应该如何处理?
- No DLL included: 按照通常方式安装模组。为 ShroudForge 或 EML 制作的模组不需要额外的原生 DLL。
- DLL included: 按照下方所示将模组 DLL 放入其模组文件夹。随后它会显示在 DLL Manager 中。已知配置文件会预先设置选择。否则,请在此处选择并确认 DLL。
- Other mod files included: 保留完整的模组文件夹。不要删除
mod.json、native-plugin.ini或配置文件等内容。
如果一个模组包含多个 DLL 文件
许多模组文件夹中的 DLL 只是辅助文件。只选择模组配置文件或作者说明中指定要加载的 DLL。上下按钮用于设置同一模组文件夹内所选 DLL 的顺序。它们不会为不同模组文件夹中的普通 DLL 设置全局手动顺序。
安装模组 DLL
如果 ShroudForge 安装程序识别下载的模组包,请直接使用它安装。手动安装时,为每个模组在 mods/ 下创建独立文件夹,并将模组 DLL 放入该文件夹。如果压缩包中的 DLL 与模组文件夹并列,请将它放入模组文件夹。保留原始文件名和软件包子文件夹。
mods/
my-mod/
mod.json (if included)
dinput8.dll (or the mod's DLL)
config.ini (if included)
DLL 不会因为放在文件夹中就自动加载。请按照上面的说明在 DLL Manager 中选择它。
为什么模组文件也可以命名为 dinput8.dll?
ShroudForge 自身的启动文件是游戏文件夹中的 dinput8.dll。模组文件单独位于 mods/<mod-folder>/dinput8.dll。ShroudForge 会从该完整路径加载它。匹配的配置文件或 DLL Manager 选择可以让 ShroudForge 将 DirectInput 调用转发给它。两个文件可以同名。不要重命名模组文件,也不要将它放进游戏文件夹。不要替换其中的 ShroudForge 启动文件。
了解配置文件
配置文件是为已知模组准备的设置。它会告知 ShroudForge 要加载哪些文件以及如何加载。ShroudForge 会根据 mod.json 中的模组 ID 进行匹配;如果没有 ID,则使用文件夹名称。你也可以在 DLL Manager 中选择配置文件。配置文件不会修改模组文件。保存的自定义 DLL 选择会替代配置文件中的文件选择。
现有 DirectInput 链
游戏文件夹中已有的 dinput8-chain.ini 使用既定格式:
[Chain] mods\my-mod\dinput8.dll mods\another-mod\native.dll
条目必须解析到直接模组包内部的文件,例如 mods/<mod-folder>/。游戏根目录中的 DLL 和软件包以外的路径会被拒绝。其顺序优先于自动推导的声明。此文件设置的是 DirectInput 提供程序链的顺序,而非不同模组文件夹中普通 DLL 的顺序。同一个解析后的文件路径只会加载一次。第一个导出自身 DirectInput8Create 的有效 DLL 会接收转发调用。后续 DirectInput 代理 DLL 仍可能加载,但它们的 DirectInput 导出不会在链中启用。不要假设多个代理可以协同工作。ShroudForge 自身的启动文件会被跳过,递归转发时会回退到原始 Windows 库。
开关、目标进程和重启
主开关控制 ShroudForge 执行的所有原生加载,包括 INI、配置文件、链和 Lua 注册。禁用某个选择会阻止该文件夹自动加载。Client、server 或 both 决定目标进程。文件名排除项会在加载前立即生效。它们不会根据文件名判断模组功能。
已加载的 DLL 会一直留在内存中,直到进程退出。因此,禁用 DLL、更改顺序或选择其他配置文件都需要重启游戏。对同一个文件重复声明不会创建另一个实例。
出现加载错误
检查模组名称、文件路径和报告的原因。Windows 错误 126 可能表示主文件或其所需的某个库缺失。如果缺少 DirectInput 导出,请检查所选文件及其加载模式。“Loaded”只确认加载步骤完成,并不代表模组的所有功能都正常。
未知的原生插件格式、Vulkan 层、其他完整加载器或外部程序需要使用其预期的集成方式。仅加载一个库并不能替代相应接口。
安装软件包
安装程序也会在嵌套压缩文件夹中查找单个模组包。已知配置文件会导入明确命名的配套文件。包含多个模组包的新压缩包不会自动作为一组安装。请先解压,然后一次安装一个模组文件夹。正常运行时不会打开压缩包,也不会启动外部程序。