- UID
- 53742
注册时间2008-6-8
阅读权限40
最后登录1970-1-1
独步武林
 
TA的每日心情 | 怒 2025-1-14 09:31 |
|---|
签到天数: 1438 天 [LV.10]以坛为家III
|
================================================================================
大漠插件 Go 语言封装库
================================================================================
版本: v1.0.0
日期: 2026-03-18
仓库: https://github.com/yuan71058/dm72424-go
================================================================================
项目简介
================================================================================
本项目是大漠插件(dm.dll)的 Go 语言封装库,将原 C++ 版本的大漠插件接口
完整翻译为 Go 语言,支持大漠插件 7.2424 版本的所有 428 个函数接口。
特性:
- 完整封装 - 支持大漠插件 7.2424 版本全部 428 个函数
- 开箱即用 - 简单导入即可使用,无需复杂配置
- 详细注释 - 所有函数都有完整的中文注释
- 类型安全 - 完整的类型定义,编译时检查
- 示例丰富 - 提供完整的使用示例
================================================================================
目录结构
================================================================================
dm72424-go/
|-- dmsoft.go 接口定义文件
|-- dmsoft_impl.go 接口实现文件(428个函数)
|-- go.mod Go 模块定义
|-- Go.dll 破J补丁
|-- xd47243.dll 大漠插件主文件
|-- example/ 使用示例
| |-- main.go 示例代码
| |-- go.mod 示例模块
|-- README.md Markdown 格式文档
|-- README.txt 本文档
================================================================================
环境要求
================================================================================
- 操作系统: Windows(32位或64位均可)
- Go 版本: Go 1.16 或更高版本
- 编译要求: 必须编译为 32 位程序
================================================================================
安装方法
================================================================================
方法一:Go Modules(推荐)
go get github.com/yuan71058/dm72424-go
方法二:本地引用
git clone https://github.com/yuan71058/dm72424-go.git
在 go.mod 中添加:
replace github.com/yuan71058/dm72424-go => ./dm72424-go
================================================================================
编译说明
================================================================================
【重要】大漠插件是 32 位 DLL,必须编译为 32 位程序!
设置环境变量:
go env -w GOARCH=386
编译:
go build -o myapp.exe
================================================================================
快速开始
================================================================================
package main
import (
"fmt"
"log"
"syscall"
dmsoft "github.com/yuan71058/dm72424-go"
)
func main() {
// 1. 加载大漠插件
dmHModule, err := dmsoft.Load("xd47243.dll")
if err != nil {
log.Fatal(err)
}
// 2. 执行破J(可选)
goHModule, _ := syscall.LoadLibrary("Go.dll")
goFunAddr, _ := syscall.GetProcAddress(goHModule, "Go")
syscall.SyscallN(uintptr(goFunAddr), dmHModule)
defer syscall.FreeLibrary(goHModule)
// 3. 创建对象并初始化
dm := dmsoft.New()
dm.Init()
defer dm.Release()
// 4. 注册
if dm.Reg("", "") == 1 {
fmt.Println("注册成功!")
}
// 5. 开始使用
fmt.Printf("版本: %s\n", dm.Ver())
fmt.Printf("分辨率: %d x %d\n", dm.GetScreenWidth(), dm.GetScreenHeight())
}
================================================================================
核心函数
================================================================================
Load(path string) (uintptr, error) 加载大漠插件 DLL
Free() bool 释放大漠插件
New() *DmSoft 创建大漠对象
Init() 初始化对象
Release() 释放对象
================================================================================
函数分类
================================================================================
分类 函数数量 主要函数
------------------------------------------------------------------------
窗口操作 ~50 BindWindow, FindWindow, GetWindowRect
鼠标操作 ~20 MoveTo, LeftClick, GetCursorPos
键盘操作 ~15 KeyPress, KeyDown, SendString
图像处理 ~30 Capture, FindPic, LoadPic
颜色操作 ~15 GetColor, FindColor, CmpColor
OCR识别 ~20 Ocr, FindStr, SetDict
内存操作 ~40 ReadInt, WriteInt, FindData
系统信息 ~20 Ver, GetOsType, GetTime
文件操作 ~15 ReadFile, WriteFile, IsFileExist
AI功能 ~10 LoadAi, FindPicAi
================================================================================
注意事项
================================================================================
1. 初始化顺序
必须按照以下顺序初始化:
dm := dmsoft.New()
dm.Init() // 必须调用!
defer dm.Release()
2. 窗口绑定
大部分屏幕操作需要先绑定窗口:
hwnd := dm.GetForegroundWindow()
dm.BindWindow(hwnd, "gdi", "normal", "normal", 0)
// ... 操作 ...
dm.UnBindWindow()
3. 管理员权限
以下功能需要管理员权限:
- 内存读写操作
- 某些窗口绑定模式(dx模式)
- 进程操作
4. 编码问题
大漠插件返回的字符串可能是 GBK 编码,需要转换为 UTF-8。
================================================================================
常见问题
================================================================================
Q1: 注册失败怎么办?
- 确保破JDLL已正确加载和执行
- 检查破JDLL版本是否与大漠插件版本匹配
- 尝试以管理员权限运行
Q2: 截图返回黑色图像?
- 确保已正确绑定窗口
- 尝试不同的绑定模式(gdi/dx/opengl)
- 检查窗口是否最小化或被遮挡
Q3: 找图/找色失败?
- 检查图片路径是否正确
- 确保已设置正确的资源路径(SetPath)
- 调整相似度参数
- 检查颜色格式是否正确
Q4: 编译报错 "not a valid Win32 application"?
- 确保编译为32位程序:go env -w GOARCH=386
- 大漠插件是32位DLL,不能在64位程序中调用
================================================================================
许可证
================================================================================
本项目仅供学习交流使用,请勿用于商业用途。
大漠插件版权归大漠插件作者所有。
================================================================================
联系方式
================================================================================
GitHub: https://github.com/yuan71058/dm72424-go
================================================================================
|
|