ProjectWIND/main.go

93 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"ProjectWIND/core"
"ProjectWIND/wba"
"fmt"
"log"
"os"
"syscall"
"unsafe"
)
var CoreOs = core.GetOS()
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参数连接协议端开始运行。")
return
}
cmdArgs := os.Args[1:]
if cmdArgs[0] == "-h" || cmdArgs[0] == "--help" {
fmt.Printf(logo)
fmt.Printf("%v\n", helpDoc)
return
}
if cmdArgs[0] == "-r" || cmdArgs[0] == "--run" {
// 启动服务
startWebUI()
return
}
if cmdArgs[0] == "-i" || cmdArgs[0] == "--init" {
// 初始化项目
initCore()
return
}
if cmdArgs[0] == "-v" || cmdArgs[0] == "--version" {
// 显示版本信息
fmt.Printf(logo)
fmt.Printf("%v \n架构%v\n", version, CoreOs.String())
return
}
if cmdArgs[0] == "-s" || cmdArgs[0] == "--service" {
// 注册Linux服务并启动
registerService()
return
}
if cmdArgs[0] == "-p" || cmdArgs[0] == "--protocol" {
// 连接到协议端
go AutoSave()
startProtocol()
return
}
if cmdArgs[0] == "-d" || cmdArgs[0] == "--database" {
// 连接到数据库
startDatabase()
return
}
fmt.Println("未知命令,请使用-h查看帮助。")
return
}