运行包内窗口
从 Go SDK 根目录运行预编译程序。它从 EXE 同目录加载 kui_c.dll,打开一个原生窗口;这一环节不需要编译。
.\bin\kui_go_hello_world.exe读入口代码
hello_world 先 Load、Init,再创建 Window 与 Document。Load 失败时程序直接报错;拥有型对象用 defer Close 释放。Run 进入 UI 消息循环。
package main
import (
"log"
kui "github.com/kui-engine/kui-go/v3"
"github.com/kui-engine/kui-go/v3/examples/internal/exampleutil"
)
func main() {
if err := kui.Load(exampleutil.RuntimePath()); err != nil {
log.Fatal(err)
}
if err := kui.Init(); err != nil {
log.Fatal(err)
}
defer kui.Shutdown()
window, err := kui.NewWindow(kui.WindowProps{Title: "KUI Go SDK", Width: 960, Height: 640, Centered: true})
if err != nil {
log.Fatal(err)
}
defer window.Close()
document, err := window.Document()
if err != nil {
log.Fatal(err)
}
defer document.Close()
if err := document.LoadHTML(`<main style="padding:48px;font-family:sans-serif"><h1>Go SDK 已接入 KUI</h1><p>此程序仅通过公开 C ABI 工作。</p></main>`); err != nil {
log.Fatal(err)
}
if err := window.Show(); err != nil {
log.Fatal(err)
}
if _, err := kui.Run(); err != nil {
log.Fatal(err)
}
}
修改并构建单个示例
在 examples/hello_world/main.go 修改 HTML 的标题。在 SDK 根目录执行下列命令;输出放到 bin,方便它找到同目录的 kui_c.dll。CC 适配器处理 MSVC 目标的 Clang 参数。
$python = (Get-Command python).Source
$adapter = (Resolve-Path .\tools\clang_go_cgo.py).Path
$env:CGO_ENABLED = '1'
$env:CC = "`"$python`" `"$adapter`""
go build -o .\bin\my_first_go.exe .\examples\hello_world
.\bin\my_first_go.exe验收与排错
确认窗口显示新标题。若提示找不到 kui_c.dll,检查 bin 目录或把运行库路径显式传为程序第一个参数;若编译失败,核对 Go、Python 和 LLVM Clang 是否可调用。
.\bin\my_first_go.exe .\native\bin\kui_c.dll文档有误或遗漏?
反馈此页问题 →