U: 修改tempdll使用方式

This commit is contained in:
杨红岩 2024-01-10 17:39:03 +08:00
parent 20967d140b
commit 254932b2d5

View File

@ -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文件目录