2024-11-28 15:20:29 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2024-12-27 15:56:59 +08:00
|
|
|
|
"ProjectWIND/core"
|
2025-02-20 22:13:01 +08:00
|
|
|
|
"ProjectWIND/wba"
|
2024-11-28 19:45:03 +08:00
|
|
|
|
"fmt"
|
2025-02-20 22:13:01 +08:00
|
|
|
|
"log"
|
2024-11-28 19:45:03 +08:00
|
|
|
|
"os"
|
2025-02-20 22:13:01 +08:00
|
|
|
|
"syscall"
|
|
|
|
|
"unsafe"
|
2024-11-28 15:20:29 +08:00
|
|
|
|
)
|
|
|
|
|
|
2024-12-27 15:56:59 +08:00
|
|
|
|
var CoreOs = core.GetOS()
|
|
|
|
|
|
2024-11-28 15:20:29 +08:00
|
|
|
|
func main() {
|
2025-02-20 22:13:01 +08:00
|
|
|
|
// 加载 DLL 文件
|
|
|
|
|
dll, err := syscall.LoadDLL("wind.dll")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("加载dll文件失败: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 绑定到 AppInit 函数
|
|
|
|
|
appInitProc, err := dll.FindProc("AppInit")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("查找AppInit函数失败: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 调用 AppInit 函数
|
|
|
|
|
ret, _, err := appInitProc.Call()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("调用AppInit函数失败: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 处理 AppInfo
|
|
|
|
|
appInfo := (*wba.AppInfo)(unsafe.Pointer(ret)) // 使用导入的 AppInfo
|
|
|
|
|
|
|
|
|
|
// 打印 AppInfo 数据
|
|
|
|
|
fmt.Printf("App Name: %s\n", appInfo.Name)
|
|
|
|
|
fmt.Printf("Author: %s\n", appInfo.Author)
|
|
|
|
|
fmt.Printf("Version: %s\n", appInfo.Version)
|
|
|
|
|
fmt.Printf("Description: %s\n", appInfo.Description)
|
|
|
|
|
fmt.Printf("Namespace: %s\n", appInfo.Namespace)
|
|
|
|
|
fmt.Printf("Web URL: %s\n", appInfo.WebUrl)
|
|
|
|
|
fmt.Printf("License: %s\n", appInfo.License)
|
|
|
|
|
|
2024-11-29 11:43:39 +08:00
|
|
|
|
//如果没有参数,则启动WebUI
|
|
|
|
|
if len(os.Args) <= 1 {
|
2024-12-03 09:31:45 +08:00
|
|
|
|
initCore()
|
|
|
|
|
fmt.Println("请修改配置文件后,使用-p参数连接协议端开始运行。")
|
2024-11-28 19:45:03 +08:00
|
|
|
|
return
|
|
|
|
|
}
|
2024-11-29 11:43:39 +08:00
|
|
|
|
cmdArgs := os.Args[1:]
|
|
|
|
|
if cmdArgs[0] == "-h" || cmdArgs[0] == "--help" {
|
2024-12-27 15:56:59 +08:00
|
|
|
|
fmt.Printf(logo)
|
2024-11-29 11:43:39 +08:00
|
|
|
|
fmt.Printf("%v\n", helpDoc)
|
|
|
|
|
return
|
2024-11-28 19:45:03 +08:00
|
|
|
|
}
|
2024-11-29 11:43:39 +08:00
|
|
|
|
if cmdArgs[0] == "-r" || cmdArgs[0] == "--run" {
|
|
|
|
|
// 启动服务
|
|
|
|
|
startWebUI()
|
|
|
|
|
return
|
2024-11-28 19:45:03 +08:00
|
|
|
|
}
|
2024-11-29 11:43:39 +08:00
|
|
|
|
if cmdArgs[0] == "-i" || cmdArgs[0] == "--init" {
|
|
|
|
|
// 初始化项目
|
|
|
|
|
initCore()
|
|
|
|
|
return
|
2024-11-28 19:45:03 +08:00
|
|
|
|
}
|
2024-11-29 11:43:39 +08:00
|
|
|
|
if cmdArgs[0] == "-v" || cmdArgs[0] == "--version" {
|
|
|
|
|
// 显示版本信息
|
2024-12-27 15:56:59 +08:00
|
|
|
|
fmt.Printf(logo)
|
|
|
|
|
fmt.Printf("%v \n架构:%v\n", version, CoreOs.String())
|
2024-11-29 11:43:39 +08:00
|
|
|
|
return
|
2024-11-28 19:45:03 +08:00
|
|
|
|
}
|
2024-11-29 11:43:39 +08:00
|
|
|
|
if cmdArgs[0] == "-s" || cmdArgs[0] == "--service" {
|
|
|
|
|
// 注册Linux服务并启动
|
|
|
|
|
registerService()
|
|
|
|
|
return
|
2024-11-28 19:45:03 +08:00
|
|
|
|
}
|
2024-11-29 11:43:39 +08:00
|
|
|
|
if cmdArgs[0] == "-p" || cmdArgs[0] == "--protocol" {
|
|
|
|
|
// 连接到协议端
|
2024-12-05 01:00:07 +08:00
|
|
|
|
go AutoSave()
|
2024-12-07 17:16:44 +08:00
|
|
|
|
startProtocol()
|
2024-11-29 11:43:39 +08:00
|
|
|
|
return
|
2024-11-28 15:20:29 +08:00
|
|
|
|
}
|
2025-01-23 13:07:44 +08:00
|
|
|
|
if cmdArgs[0] == "-d" || cmdArgs[0] == "--database" {
|
|
|
|
|
// 连接到数据库
|
|
|
|
|
startDatabase()
|
|
|
|
|
return
|
|
|
|
|
}
|
2024-12-27 15:56:59 +08:00
|
|
|
|
fmt.Println("未知命令,请使用-h查看帮助。")
|
2024-11-29 11:43:39 +08:00
|
|
|
|
return
|
2024-11-28 15:20:29 +08:00
|
|
|
|
}
|