forked from ProjectWIND/ProjectWIND
93 lines
2.1 KiB
Go
93 lines
2.1 KiB
Go
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
|
||
}
|