Skip to content

API Loader Constants

3cxc edited this page Sep 12, 2026 · 2 revisions

NativePluginKit.Loader.Constants

Shared ABI definitions exchanged between host and plugin.

Type Description
HostApiBridgeBuilder 用于构建 HostApiTable 的静态工厂类
HostApiTable 主程序暴露给插件的函数指针表
PluginInfo 插件元数据结构体
PluginInitDelegate 插件导出初始化函数签名

HostApiBridgeBuilder

public static class HostApiBridgeBuilder

用于构建 HostApiTable 的静态工厂类。将托管委托转换为非托管函数指针。

Nested Types

TransitionToSceneDelegate

public delegate void TransitionToSceneDelegate(IntPtr scenePathPtr, bool fadeOut)

表示场景切换函数的委托,与宿主 API 中的 TransitionToScene 匹配。

PrintLogDelegate

public delegate void PrintLogDelegate(IntPtr messagePtr)

表示日志输出函数的委托,与宿主 API 中的 PrintLog 匹配。

Methods

Create(TransitionToSceneDelegate transition, PrintLogDelegate printLog)

public static HostApiTable Create(
    TransitionToSceneDelegate transition,
    PrintLogDelegate printLog)

创建填充了函数指针的 HostApiTable 实例。

Parameter Type Description
transition TransitionToSceneDelegate 实现场景切换的托管委托
printLog PrintLogDelegate 实现日志输出的托管委托

Returns: 包含非托管函数指针的 API 表结构体。


HostApiTable

public struct HostApiTable

主程序暴露给插件的函数指针表,包含插件可调用的宿主功能。结构体采用顺序布局,与非托管内存直接对应。

Fields

Member Type Description
PrintLog IntPtr 指向 PrintLog 函数的指针。签名:void PrintLog(IntPtr messagePtr)
TransitionToScene IntPtr 指向 TransitionToScene 函数的指针。签名:void TransitionToScene(IntPtr scenePathPtr, bool fadeOut)

PluginInfo

public struct PluginInfo

插件元数据结构体。宿主在加载插件时读取此结构以获取插件名称、版本和兼容性信息。

Fields

Member Type Description
NamePtr IntPtr 指向插件名称的 UTF-8 字符串指针
DescriptionPtr IntPtr 指向插件描述的 UTF-8 字符串指针
AuthorPtr IntPtr 指向插件作者的 UTF-8 字符串指针
MajorVersion int 插件主版本号
MinorVersion int 插件次版本号
BuildVersion int 插件构建号
RevisionVersion int 插件修订号
RequiredApiMajor int 要求的宿主 API 主版本
RequiredApiMinor int 要求的宿主 API 次版本

Methods

GetName()

public string GetName()

返回插件名称。

GetDescription()

public string GetDescription()

返回插件描述。

GetAuthor()

public string GetAuthor()

返回插件作者。

GetVersion()

public Version GetVersion()

返回插件版本。

GetRequiredApiVersion()

public Version GetRequiredApiVersion()

返回插件所要求的宿主 API 版本。


PluginInitDelegate

public delegate void PluginInitDelegate(IntPtr hostApiTable)

插件导出的初始化函数签名。插件必须导出一个名为 OnInit 的函数,参数为指向 HostApiTable 的指针。

Clone this wiki locally