yuan71058 发表于 3 天前

大漠7.2424破J版 go语言版调用库



================================================================================
                        大漠插件 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

================================================================================

batcd 发表于 3 天前

谢谢分享我没成功太笨了

yuan71058 发表于 3 天前

batcd 发表于 2026-3-24 08:02
谢谢分享我没成功太笨了

package main

import (
    "fmt"
    "log"
   
    dmsoft "github.com/yuan71058/dm72424-go"
)

func main() {
    // 1. 加载大漠插件
    _, err := dmsoft.LoadDm("xd47243.dll")//注意填写对路径
    if err != nil {
      log.Fatal(err)
    }
   
    // 2. 破解大漠插件
    err = dmsoft.CrackDm("Go.dll")//注意填写对路径
    if err != nil {
      log.Fatal(err)
    }
   
    // 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())
}

chchhau 发表于 3 天前

PYG21周年生日快乐!

haoge 发表于 3 天前

前两天再别的论坛看到个python版本,是翻译那个了吗

linxiansen 发表于 3 天前

PYG21周年生日快乐!

yyb1813 发表于 3 天前

go语言?能在易语言上面用吗?不懂就问

yuan71058 发表于 3 天前

haoge 发表于 2026-3-24 11:21
前两天再别的论坛看到个python版本,是翻译那个了吗

翻译的c++

yuan71058 发表于 3 天前

yyb1813 发表于 2026-3-24 16:00
go语言?能在易语言上面用吗?不懂就问

不能 易语言有破解版的大漠模块

batcd 发表于 前天 06:58

yuan71058 发表于 2026-3-24 09:01
package main

import (


谢谢大佬还是失败了不搞了{:biggrin:}GOROOT=H:\Program Files\Go #gosetupGOPATH=C:\Users\batcd\go #gosetup
GOPROXY=https://goproxy.cn,direct #gosetup
"H:\Program Files\Go\bin\go.exe" build -o C:\Users\batcd\AppData\Local\JetBrains\GoLand2024.2\tmp\GoLand\___go_build_example.exe example #gosetup
C:\Users\batcd\AppData\Local\JetBrains\GoLand2024.2\tmp\GoLand\___go_build_example.exe #gosetup
2026/03/25 06:57:41 加载大漠DLL失败: %1 is not a valid Win32 application.


页: [1] 2
查看完整版本: 大漠7.2424破J版 go语言版调用库