QT写Windows按键输出(外挂)

【逆向工程】x64dbg逆向扫雷及QT编写游戏辅助 x64dbg逆向扫雷及QT编写游戏辅助 网上的X64dbg新手入门的教程很少,因为自己也是个新手菜狗并且直接跳过了OD用的X64dbg,所以想记录一下方便后来想直接上手X64dbg的萌新,把过程写下来也是想加深一遍理解,用QT编写辅助是因为最近在学QT# 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些 阅读详情

一、前言

        玩游戏的时候遇到些枯燥无味反反复复的按鼠标键盘的情况时,就想写个外挂自动释放。刚好在学qt所以试验了下QT能不能对外输出按键与鼠标。

二、思路

        qt中的按键鼠标全是输入,没有直接对外输出键盘鼠标指令的类,但是我们换个思路,我们可以给Windows发送信号,让Windows发送虚拟的键盘指令,即直接调用Windows的api接口。

三、代码实现(键盘为例)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QDebug>
#include <QKeyEvent>

#ifdef Q_OS_WIN
#include <windows.h>
#endif

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QTimer* m_timer_0;
    QTimer* m_timer_1;

    void sendKeyboardInput(Qt::Key key, bool isKeyDown = true);

protected:
    virtual void keyPressEvent(QKeyEvent *event);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    m_timer_0 = new QTimer;
    m_timer_1 = new QTimer;
    connect(m_timer_0, &QTimer::timeout, this, [=](){
        sendKeyboardInput(Qt::Key_F2);
        qDebug() << "Press F2";
        m_timer_1->start(500);
    });
    connect(m_timer_1, &QTimer::timeout, this, [=](){
        sendKeyboardInput(Qt::Key_F1);
        qDebug() << "Press F1";
        m_timer_1->stop();
    });
    connect(ui->pushButton, &QPushButton::clicked, this, [=](){
        m_timer_0->start(1000);
    });
    connect(ui->pushButton_2, &QPushButton::clicked, this, [=](){
        m_timer_0->stop();
    });
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::sendKeyboardInput(Qt::Key key, bool isKeyDown)
{
#ifdef Q_OS_WIN
    INPUT input = {};
    input.type = INPUT_KEYBOARD;

    unsigned short keyAddr;
    if(key == Qt::Key_F1)
    {
        keyAddr = 0x70;
    }
    else if(key == Qt::Key_F2)
    {
        keyAddr = 0x71;
    }
    else
    {
        keyAddr = key;
    }
    // 获取Virtual Key Code
//    input.ki.wVk = static_cast<WORD>(key + 0x100);  // 加0x100表示非扫描码
    input.ki.wVk = static_cast<WORD>(keyAddr + 0x100);  // 加0x100表示非扫描码

    // 设置按键状态(按下或释放)
    input.ki.dwFlags = isKeyDown ? 0 : KEYEVENTF_KEYUP;

    // 发送模拟的键盘事件
    SendInput(1, &input, sizeof(input));
#else
    Q_UNUSED(key);
    Q_UNUSED(isKeyDown);
    qWarning() << "sendKeyboardInput() is only supported on Windows.";
#endif
}

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_Escape)
    {
       m_timer_0->stop();
    }
    else if (event->key() == Qt::Key_Space)
    {
        m_timer_0->start(1000);
    }
}

四、代码分析

        自动按键盘等自动释放需要使用qtimer来实现,Windows的api使用时需要添加Windows的头文件。至于鼠标和键盘的事件,在这就不在讲解,资料很多自己学习即可,记得重构就行。

        这里有个注意事项,Windows API中,Virtual Key Code(VK Code)键盘按键对应的值和QT中键盘按键枚举的值是不一样的,如果要用的键盘按键多的话,最好映射一下地址,我做实验就没写映射。下述为Virtual Key Code(VK Code)键盘按键对应的值:

#define VK_LBUTTON          0x01    // 左鼠标按钮
#define VK_RBUTTON          0x02    // 右鼠标按钮
#define VK_CANCEL           0x03    // 控制-break 终止符
#define VK_MBUTTON          0x04    // 中间鼠标按钮(如果存在的话)
#define VK_BACK            0x08    // Backspace 键
#define VK_TAB             0x09    // Tab 键
#define VK_CLEAR           0x0C    // Clear 键
#define VK_RETURN          0x0D    // Enter 键
#define VK_SHIFT           0x10    // Shift 键
#define VK_CONTROL         0x11    // Ctrl 键
#define VK_MENU            0x12    // Alt 键
#define VK_PAUSE           0x13    // Pause 键
#define VK_CAPITAL         0x14    // Caps Lock 键
#define VK_KANA            0x15    // IME Kana 模式(日语输入法)
#define VK_HANGEUL         0x15    // IME Hangul 模式(韩语输入法)
#define VK_HANGUL          0x15    // IME Hangul 模式(韩语输入法)
#define VK_JUNJA           0x17    // IME Junja 模式
#define VK_FINAL           0x18    // IME Final 模式
#define VK_HANJA           0x19    // IME Hanja 模式(韩语输入法)
#define VK_KANJI           0x19    // IME Kanji 模式(日语输入法)
#define VK_ESCAPE          0x1B    // Esc 键
#define VK_CONVERT         0x1C    // IME Convert 键
#define VK_NONCONVERT      0x1D    // IME NonConvert 键
#define VK_ACCEPT          0x1E    // IME Accept 键
#define VK_MODECHANGE      0x1F    // IME Mode Change 请求
#define VK_SPACE           0x20    // Space 键
#define VK_PRIOR           0x21    // Page Up 键
#define VK_NEXT            0x22    // Page Down 键
#define VK_END             0x23    // End 键
#define VK_HOME            0x24    // Home 键
#define VK_LEFT            0x25    // Left Arrow 键
#define VK_UP              0x26    // Up Arrow 键
#define VK_RIGHT           0x27    // Right Arrow 键
#define VK_DOWN            0x28    // Down Arrow 键
#define VK_SELECT          0x29    // Select 键
#define VK_PRINT           0x2A    // Print 键
#define VK_EXECUTE         0x2B    // Execute 键
#define VK_SNAPSHOT        0x2C    // Print Screen 键
#define VK_INSERT          0x2D    // Insert 键
#define VK_DELETE          0x2E    // Delete 键
#define VK_HELP            0x2F    // Help 键

// 数字键区(小键盘)
#define VK_0               0x30
#define VK_1               0x31
// ...(省略其他数字键)
#define VK_9               0x39

// 字母键区
#define VK_A               0x41
#define VK_B               0x42
// ...(省略其他字母键)
#define VK_Z               0x5A

// 专用字符键
#define VK_LWIN            0x5B    // 左 Windows 键
#define VK_RWIN            0x5C    // 右 Windows 键
#define VK_APPS            0x5D    // 应用程序键(菜单键)
#define VK_SLEEP           0x5F    // 电脑休眠键

// 数字键区(小键盘)
#define VK_NUMPAD0         0x60
#define VK_NUMPAD1         0x61
// ...(省略其他数字键)
#define VK_NUMPAD9         0x69

// 数字键区附加键
#define VK_MULTIPLY        0x6A    // *
#define VK_ADD             0x6B    // +
#define VK_SEPARATOR       0x6C    // 通常为小数点 .
#define VK_SUBTRACT        0x6D    // -
#define VK_DECIMAL         0x6E    // 小数点 .
#define VK_DIVIDE          0x6F    // /

// 功能键区(F1到F12)
#define VK_F1              0x70
#define VK_F2              0x71
// ...(省略其他功能键)
#define VK_F12             0x7B

// 其他键
#define VK_LSHIFT          0xA0    // 左 Shift 键
#define VK_RSHIFT          0xA1    // 右 Shift 键
#define VK_LCONTROL        0xA2    // 左 Ctrl 键
#define VK_RCONTROL        0xA3    // 右 Ctrl 键
#define VK_LMENU           0xA4    // 左 Alt 键
#define VK_RMENU           0xA5    // 右 Alt 键

        还有一点就是,如果不想那么快被封号,timer时间不要写那么死,搞个随机数时间,区间范围内随机触发。

五、视频演示

F2F1自动按下脚本

Qt框架下构建Rewired风格输入系统:实现FNF音游模拟器与高性能交互应用 在跨平台GUI应用开发中,高效、稳定的输入事件处理是构建专业工具和交互系统的核心挑战。Qt框架自带的事件系统虽然强大,但在处理复杂、多通道、可重映射的游戏控制器输入时,往往难以满足高精度和低延迟的要求。其输入抽象层级较高,对游戏手柄、摇杆等多轴设备支持较弱,且缺乏灵活的“输入动作”抽象层,导致键位配置固化,难以支持用户自定义。为了解决这一问题,可以借鉴Unity生态中流行的Rewired输入管理系统的设计理念,在C++/Qt环境中构建一套类似的输入抽象层。该技术方案的核心价值在于实现输入硬件、映射配置与游戏 阅读详情

相关推荐

Windows虚拟键码(VK_)详解:从WinUser.h源码到实战应用

虚拟键码(Virtual Key Codes)是Windows平台输入处理的底层基石,它将物理按键抽象为统一整数标识,实现硬件无关、布局无关的键盘事件标准化。其核心原理在于通过WinUser.h头文件定义的VK_宏集合,建立键盘扫描码到逻辑键值的映射关系,支撑WM_KEYDOWN等消息机制。该机制的技术价值在于保障快捷键响应、全局热键注册、多语言键盘兼容及无障碍交互的可靠性。典型应用场景涵盖桌面应用开发、远程控制工具、工业HMI界面、游戏输入处理及辅助技术开发。深入理解VK_系列常量的分区逻辑(如ASCII

weixin_34178244的博客 464

Qt应用外挂插件封装与使用(遍历插件)

1 概述 插件,英文名Plug-in,又名外挂。顾名思义就是一种遵循一定规范的应用程序接口编写出来的程序。对于使用插件的程序而言,只关心是不是插件,插件的接口是不是符合规范(双方统一)。 2 Qt插件 从qt帮助文档出发。找到“How to Create Qt Plugins”。根据文档叙述可知,针对插件开发Qt提供了两种API,一种是高阶API,用于Qt自身数据库驱动、图片格式等扩展。另一...

w1820020635的博客 3335

韩语键盘以及输入法

这是韩语输入法的demo,里面有Qt写的键盘以及纯C++写的韩语输入法库

Qt键盘键值表

简单说明了基本所有能用到的: Qt::Key_Escape 0x01000000 Esc键 Qt::Key_Tab 0x01000001 Tab键 Qt::Key_Backtab 0x01000002 Tab补全键 Qt::Key_Backspace 0x01000003 退格键 Qt::Key_Return 0x01000004 Return键 Qt::Key_Enter 0x01000005 回车键 Qt::Key_Inser...

koukouwuwu的专栏 7060

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 157

逆变器母线电容选型与均压电阻设计实战指南

本文为逆变器母线电容选型与均压电阻设计提供了实战指南。文章从工程角度出发,详细解析了母线电容耐压值、容值的计算方法,并重点强调了纹波电流热设计的重要性。同时,深入探讨了串联电容均压电阻的设计原则与功率计算,通过5.5kW变频器案例,系统演示了从参数确定到最终选型的完整流程,旨在帮助工程师设计出稳定可靠的逆变器系统。

weixin_29299807的博客 292

QT| C/C++之win98扫雷外挂增强版

C/C++之win98扫雷外挂增强篇

IT1995的博客 1万+

Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾

电商秒杀系统框架回顾项目简介外部依赖框架回顾项目要点项目中存在的问题小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以跟着视频练习一下这个项目; 项目简介 通过SpringBoot快速搭建的前后端分离的电商基础秒杀项目。项目通过应用领域驱动型的分层模型设计方式去完成:用户otp注册、登陆、查看、商品列表、进入商品详情以及倒计时秒...

ghw15221836342的博客 3720

Qt按键值与Windows Virtual-Key Codes映射表

前言 在做远程控制/反向控制的时候,要远程模拟键盘按键事件发送,然后被控制端要根据相应的键值来响应。这里采用Qt去获取按键事件,然后映射到windows的对应的键盘键值,提供一个映射表,已基本包含所有常用的字符。 正文 这里定义来一个QMap QMapint,char> m_KeyMap;//键盘映射表 看看对应关系 m_KeyMap.insert(Qt::Key_

luoyayun361的专栏 5986

nRF52382低功耗蓝牙应用开发之入门教程-软件烧录

准备工作在上一篇文章讲过了,这里就讲讲nRFgo studio的使用 硬件准备: J-link:2线 供电:3.3V 如下图打开nRFgo studio界面介绍, 2、如果J-link正常,如下图 3、如果蓝牙芯片正常 4、烧录过程,如果蓝牙芯片之前有烧录过程序,需先点擦除,再点烧录 5、烧录代码路劲,例如 F:\nRF\SDK\nRF5_SDK_15.2.0_...

LinQiPing233的博客 1946

【Flink】FlinkSQL如何触发执行计算

Table (通过 StatementSet.addInsert() 输出给某个 Sink)和 INSERT 语句 (通过调用 StatementSet.addInsertSql())会先被缓存到 StatementSet 中,StatementSet.execute() 方法被调用时,所有的 sink 会被优化成一张有向无环图。该方法是用来将一个表的内容插入到目标表中,一旦该方法被调用, TABLE API 程序立即被翻译。该方法是用来执行一个 SQL 语句,一旦该方法被调用, SQL 语句立即被翻译。

一杯咖啡半杯糖的博客 1007

告别“别扭操作“:QKeyMapper,免费开源的Windows按键映射神器

你是否也有过这样的时刻:一款游戏什么都好,唯独按键布局怎么都不顺手,官方还不给改键,只能捏着鼻子硬撑;或者你买了个手柄,却发现想玩的游戏只认键鼠。别急,今天分享的免费开源工具 **QKeyMapper** 正是为这些"按键别扭"的时刻而生——它能让键盘、鼠标、手柄之间任意互相映射,不改注册表、不重启系统,即开即用,帮你把每一个按键都握在自己手里。 ## 一句话了解它 QKeyMapper 是一

gitblog_01113的博客 233

Python与.NET革命性互操作:PythonNet实现零门槛双向调用——深度解析与实战案例

跨语言调用实战指南:Python与.NET深度集成 摘要:本文详解Python与.NET双向互调技术,通过PythonNet和Python.Runtime实现高效跨语言协作。核心优势包括:无缝集成Python机器学习模块(如PaddleOCR)与.NET UI框架,内存直传提升90%数据效率,减少80%重复代码。内容涵盖:1)Python调用.NET类库的完整流程;2)C#动态加载Python脚本及环境配置要点;3)反射机制实现私有方法调用与泛型处理;4)性能优化技巧(类型缓存、NumPy数组转换);5)异

墨夶的博客 611

想用手柄玩键鼠游戏?这款免费开源的按键映射工具值得一试

手柄党遇到只支持键鼠的游戏,是不是只能干瞪眼?工作里三套软件的快捷键各讲各话,记到头大?今天要介绍的免费开源项目 QKeyMapper,正是一款能在不修改注册表、不重启系统的前提下,随时启用、随时停下的按键映射工具,帮你把键盘、鼠标、手柄之间的操作彻底打通。 ## 一句话看懂它是谁 QKeyMapper 是基于 Qt 开发的 Windows 按键映射工具,适配 Win10 与 Win11。它的

gitblog_01135的博客 181

conda install出现CondaValueError: Malformed version string invalid character(s)解决方案

本文主要介绍了conda install出现Solving environment:failed、CondaValueError: Malformed version string invalid character(s),希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 步骤一 2.2 步骤二 2.3 步骤三

weixin_43178406的博客 6万+

Oracle EBS 帐套(Ledger/SOB)如何定义会计主体、如何支撑多准则 / 多报告、组织与帐套的绑定关系、以及项目落地时的设计差异。下面从实现逻辑、核心要素、组织模型、多账簿、科目设计、项

本文对比了Oracle EBS R12与SAP S/4HANA在帐套(Ledger)设计上的核心差异。Oracle采用4C架构(科目/币种/日历/准则),帐套作为独立会计主体,主辅账物理隔离;SAP则以公司代码为主体,通过平行分类账在同一凭证中实现多准则核算。关键差异体现在:Oracle强调边界隔离,适合差异大的集团;SAP注重统一视图,适合实时合并需求。实施时需注意:Oracle避免过度建账套,SAP需统筹科目与维度设计。两者分别体现了"盒子"与"滤镜"的设计哲学。

金牌架构师 417

Windows Raw Input底层输入捕获技术实战

Raw Input是Windows系统提供的底层输入访问机制,绕过传统消息循环(如WM_KEYDOWN),直接从HID驱动层获取键盘鼠标原始数据。其原理基于内核级设备数据包投递,具备无视应用层Hook、不依赖窗口焦点、低延迟响应等技术优势。在录屏教学、快捷键标注、信创环境适配等强管控场景中,Raw Input成为突破输入拦截的关键能力。结合C++零开销抽象与Qt 6.8原生事件过滤机制,可构建毫秒级同步的物理层按键标注工具,适用于USB/PS2标准外设的实时扫描码解析与跨布局键位映射。

weixin_34354173的博客 141

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C++实现鼠标控制 封装常见的模拟鼠标、键盘的操作函数

API 或 MFC 视窗程序 里 有 函数, 例如 API 函数 设位置: BOOL SetCursorPos( int x, int y); 参数是屏幕坐标x,y 头文件 Winuser.h 链接库 #pragma comment (lib, “User32.lib”) 或取位置 GetCursorPos(&amp;amp;amp;p); 显示鼠标 int ShowCursor( BOOL bShow); ...

jbh_sunshine的博客 5310

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

鼠标连点器终极指南:5分钟掌握自动化点击的完整解决方案

你是否厌倦了重复的鼠标点击操作?无论是游戏中的刷怪升级,还是工作中的批量处理,重复点击不仅枯燥乏味,还容易导致手部疲劳。今天,我要向你介绍一款完全免费开源的**鼠标连点器**——MouseClick,它不仅能解放你的双手,还能大幅提升你的工作效率。这款跨平台自动化工具支持Windows、macOS和Linux系统,基于Qt6开发,界面美观,功能强大。 ## 问题引入:为什么你需要一个专业的鼠标连

gitblog_00449的博客 194

物理层键盘模拟:绕过API拦截的HID扫描码输入方案

键盘输入模拟是自动化、录屏演示和远程协作中的基础技术,其本质是将用户意图转化为操作系统可识别的按键事件。传统方案依赖SendInput或keybd_event等Windows API,但受限于UIPI权限隔离、安全软件钩子拦截及输入法布局差异,稳定性差、兼容性低。物理层方案跳过用户态API,直接向USB HID协议栈写入原始扫描码,利用Windows内核原生HID驱动实现免驱、免钩、免权限的确定性输入。该技术不修改内存、不注入进程,适用于教学演示、SaaS产品交付与企业终端管控环境下的可靠快捷键触发,核心支

weixin_34159110的博客 460

给台式电源加个外挂大脑:PSU-EXT 可编程控制盒 DIY 全攻略

在嵌入式开发与自动化测试中,可编程电源是常见需求,但成品价格高昂。通过串口通信、ADC 采样与 MOSFET 控制,可以在不拆机的前提下,为普通台式电源增加远程控制与数据回传能力。这种方案利用 PID 调节与通信协议,实现电压电流的实时监测与输出通断,技术价值在于低成本、高可定制性。典型应用场景包括电池充放电曲线记录、长时间老化实验等。PSU-EXT 项目正是基于 STM32 或 ESP32,结合 Python 上位机,打造了一个开源、易扩展的电源控制外挂,让旧电源焕发新生。

weixin_33831673的博客 275

C++模拟鼠标键盘操作(转)

API 或 MFC 视窗程序 里 有 函数, 例如 API 函数 设位置: BOOL SetCursorPos( int x, int y); 参数是屏幕坐标x,y 头文件 Winuser.h 链接库 #pragma comment (lib, "User32.lib") 或取位置 GetCursorPos(&p); 显示鼠标 int ShowCursor( B...

Lasuerte的博客 3379

DLL查看器的使用

windows下内容复杂,五花八门,其实造成了学习的难度。windows的软件,QQ,大型游戏,都是C或C的改进技术做的。初学者学了C语言,在没有学习QT等高级技术的情况下,怎样分析了解windows下的商业软件。DLL查看器是很好的辅助。 DLL文件,类似于.h,.lib这样的头文件、库文件。 打开QQ安装目录,全是dll库。 打开DLL查看器,VC安装路径下的depends.exe....

钢七连软件项目管理和开发 4517

开源工具QKeyMapper:实现设备协同与效率提升的全方位解决方案

在数字化时代,我们每天都在与各种输入设备打交道——键盘、鼠标、游戏手柄,它们如同我们的双手,连接着人与数字世界。然而,你是否曾因设备间的不兼容而感到束手束脚?是否在切换不同应用时,为重新适应按键布局而浪费宝贵时间?开源工具QKeyMapper的出现,正是为了解决这些设备协同难题,通过创新的技术手段,让你的设备无缝协作,从而显著提升操作效率。 ## 一、问题场景:设备协同的痛点与挑战 ### 1

gitblog_01050的博客 338

PUBG罗技鼠标宏自动压枪工具完全指南:三步实现精准射击

还在为PUBG中压枪不稳而烦恼吗?想要像职业选手一样轻松控制弹道吗?这款基于C++开发的罗技鼠标宏自动压枪工具,通过智能图像识别技术,让你告别手动压枪的困扰,实现稳定精准的射击表现。 ## 核心功能解析 这款工具采用先进的图像识别算法,能够在游戏中实时识别武器和配件,自动调整压枪参数,为你提供最专业的射击辅助体验。 ### 智能识别系统 - **武器文字识别**:在背包界面准确识别当前使用的

gitblog_00769的博客 1085

delphi tclientsocket接收不到返回数据_Delphi下深入Windows编程之内存映像

我的理想是能够写出一个可以永不封号的游戏外G!虽然这个理想在很多科班出身的程序员眼中会变得不值一提甚至会被抵制或者鄙视,诚然如果是用来牟利当然不能够被提倡,因为是违法的,但是如果仅仅是作为网络游戏安全来学习的话我个人认为是值得深入学习的,当然这里不讨论这个东西的好与坏,它就像一把双刃剑,主要还是看你用来做什么我中间学习过各种语言按键精灵(甚至不能称为语言)、易语言、VB等等,中间甚至有一段时间在学...

weixin_39999209的博客 296
上一篇: QT中QOpenGL-----shader学习笔记
下一篇: OpenGL中的纹理过滤GL_NEAREST和GL_LINEAR
PJ...
博客等级 码龄5年 412粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值