mirror of
https://gitee.com/energye/energy.git
synced 2024-12-02 03:37:48 +08:00
U: 修改tempdll使用方式
This commit is contained in:
parent
20967d140b
commit
254932b2d5
@ -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文件目录
|
||||
|
Loading…
Reference in New Issue
Block a user