ProjectWIND/main.go

93 lines
2.1 KiB
Go
Raw Normal View History

2024-11-28 15:20:29 +08:00
package main
import (
2024-12-27 15:56:59 +08:00
"ProjectWIND/core"
"ProjectWIND/wba"
2024-11-28 19:45:03 +08:00
"fmt"
"log"
2024-11-28 19:45:03 +08:00
"os"
"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() {
// 加载 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)
//如果没有参数则启动WebUI
if len(os.Args) <= 1 {
initCore()
fmt.Println("请修改配置文件后,使用-p参数连接协议端开始运行。")
2024-11-28 19:45:03 +08:00
return
}
cmdArgs := os.Args[1:]
if cmdArgs[0] == "-h" || cmdArgs[0] == "--help" {
2024-12-27 15:56:59 +08:00
fmt.Printf(logo)
fmt.Printf("%v\n", helpDoc)
return
2024-11-28 19:45:03 +08:00
}
if cmdArgs[0] == "-r" || cmdArgs[0] == "--run" {
// 启动服务
startWebUI()
return
2024-11-28 19:45:03 +08:00
}
if cmdArgs[0] == "-i" || cmdArgs[0] == "--init" {
// 初始化项目
initCore()
return
2024-11-28 19:45:03 +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())
return
2024-11-28 19:45:03 +08:00
}
if cmdArgs[0] == "-s" || cmdArgs[0] == "--service" {
// 注册Linux服务并启动
registerService()
return
2024-11-28 19:45:03 +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()
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查看帮助。")
return
2024-11-28 15:20:29 +08:00
}