From 254932b2d536b58a1fbd0c0fdd909cb9bf5119a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E7=BA=A2=E5=B2=A9?= Date: Wed, 10 Jan 2024 17:39:03 +0800 Subject: [PATCH] =?UTF-8?q?U:=20=E4=BF=AE=E6=94=B9tempdll=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/tempdll/tempdll.go | 43 +++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/examples/tempdll/tempdll.go b/examples/tempdll/tempdll.go index 61e42a8e..a78ee5c3 100644 --- a/examples/tempdll/tempdll.go +++ b/examples/tempdll/tempdll.go @@ -1,29 +1,44 @@ package main import ( + "embed" "github.com/energye/energy/v2/cef" ) -// 该示例采用tempdll方式 -// 该方式不再需要手动或自动安装liblcl.xx -// 需要通过编译命令控制该方式的开启 -// 编译命令 -tags="tempdll" -// windows: go build -ldflags "-H windowsgui -s -w" -tags="tempdll" -// linux : go build -ldflags "-s -w" -tags="tempdll [gtk3 | gtk2]" -// macos : go build -ldflags "-s -w" -tags="tempdll" -// 也可通过 upx 工具, 压缩编译好的执行文件以减少体积 +/* +该示例采用tempdll方式 + 该方式在Go编译时将执行文件内置到exe中 + 前提条件 + 1. 在Go main函数初始化全局配置时[cef.GlobalInit(libs, resources)]设置libs内置对象参数 + 2. 内置资源根目录名默认libs, 也可通过 tempdll.TempDLL.SetDllFSDir("assets/libs") 自定义 +*/ + +/* +有2种内置文件对象 + 1. Go版本大于1.16可直接使用 embed.FS + 2. Go版本小于1.16不支持embed.FS, 使用energy提供的bindata方式内置进去 +*/ + +/* +编译 +energy build --libemfs 自动每次编译时都复制ENERGY_HOME目录的liblcl到内置目录 +go build 手动复制liblcl到内置目录 +*/ + +//go:embed libs +var libs embed.FS func main() { // SetDllSaveDirType 设置 liblcl 保存目录,默认系统临时目录 - //tempdll.TempDLL.SetDllSaveDirType(tempdll.TddEnergyHome) + //tempdll.TempDLL.SetDllSaveDirType(tempdll.TddCurrent) // 设置保存目录 DllSaveDirType = TddCustom 时生效 - //tempdll.TempDLL.SetDllSaveDir("/save/to/path/liblcl.xx") - - // 使用编译命令: go build -tags="tempdll" - // 开发工具 Goland: 在运行配置中 Go tool arguments 中配置 -tags="tempdll" + // tempdll.TempDLL.SetDllSaveDir("/save/to/path/liblcl.dll") + // 设置liblcl所在FS目录 + // tempdll.TempDLL.SetDllFSDir("assets/libs") //全局初始化 每个应用都必须调用的 - cef.GlobalInit(nil, nil) + // 在此处设置 libs 文件内嵌对象参数 + cef.GlobalInit(libs, nil) //创建应用 app := cef.NewApplication() //指定一个URL地址,或本地html文件目录