FORGE KUI / docs

接入 Rust SDK

在 Windows x64 MSVC 工具链下使用 kui 与 kui-sys。

版本 3.61.7

构建与运行

SDK 包含 native/lib 和 native/bin。脚本会测试并构建 quickstart 与 canonical 示例;独立应用通过 KUI_C_SDK 或 KUI_C_LIB_DIR 定位 C ABI 依赖。Release 与 Debug 导入库目录分别核对。

powershell
pwsh -File build.ps1 -Configuration Release -Output bin
cargo run --release --example hello_world

安全层与低层接口

常用 API 使用 Result 和 RAII 管理原生资源。未封装的低频 ABI 在 kui::sys 中公开,调用时遵守 unsafe、handle 所有权和 UI 线程约定。不要让 FFI 回调 panic 跨过 C 边界。

线程和扩展

Platform、Window、Document、Element 等 UI 对象不应跨线程发送。异步业务结果回到 UI 线程后更新 DOM。Full Profile 所需扩展和媒体 DLL 仍要跟应用一起部署,Rust crate 不会把这些后端重写进程序。

完整窗口入口

下面的源码直接取自 SDK hello_world 示例。保留包内模块与辅助目录,在 SDK 工程内构建;不要只复制这个文件后期待依赖自动存在。

rust
use kui::{Platform, Window, WindowProps};

fn main() -> kui::Result<()> {
    let platform = Platform::init()?;
    let window = Window::new(&WindowProps {
        title: "KUI Rust SDK".into(),
        width: 960,
        height: 640,
        ..WindowProps::default()
    })?;
    let mut document = window.document()?;
    document.load_html(
        r#"<main style="padding:48px;font-family:sans-serif"><h1>Rust SDK 已接入 KUI</h1><p>此程序仅通过公开 C ABI 工作。</p></main>"#,
    )?;
    window.show()?;
    let _ = platform.run()?;
    Ok(())
}

构建前检查

按现象缩小范围,再修改对应文件。

构建前检查
现象检查与处理
找不到绑定或 native 库确认从 SDK 工作区构建,路径指向该绑定附带的 native 目录。
启动报错或窗口不更新核对运行库版本;让 UI 调用留在初始化线程,不阻塞事件循环。
工作线程结果无法安全更新界面通过该绑定的主线程派发入口返回 UI,确认窗口仍存在。

文档有误或遗漏?

反馈此页问题 →