当前位置: 首页 > news >正文

win32汇编环境,对 WM_MOUSEMOVE 消息的理解

;运行效果

;win32汇编环境,对 WM_MOUSEMOVE 消息的理解
;理解在 WM_MOUSEMOVE 消息发生时,同时来的wParam和lParam值的含义,并取出各自的值进行运用。从这例子也可以更好的理解windows的消息机制.
;WM_MOUSEMOVE消息就是当鼠标移动时,发送给窗口的消息。如果窗口上面的其它控件,则经过控件上面的不起作用。因为其它控件不是主窗口
;直接抄进RadAsm可编译运行。重要部分加备注。
;下面为asm文件
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
include    windows.inc 
include    user32.inc 
include    kernel32.inc 

includelib user32.lib 
includelib kernel32.lib 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 自定义函数声明
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD   ;对话框窗口函数
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; 数据段
;Equ 等值定义

ICO_MAIN   equ 1000    ;图标 
IDSTATIC01 equ 21 
IDSTATIC02 equ 22
IDSTATIC03 equ 23
IDSTATIC04 equ 24
IDSTATIC05 equ 25
IDSTATIC06 equ 26
IDSTATIC07 equ 27
IDSTATIC08 equ 28

.data 
DlgName      db "MyDialog",0 

szCurrentXY  db "当前鼠标位置是:%d.%d",0
szMsg        db "提示",0
szCheshi     db "当前的十六进制值是:%lx",0

szMouseLN    db "鼠标左键状态:关闭",0
szMouseLY    db "鼠标左键状态:开启",0

szMouseRN    db "鼠标右键状态:关闭",0
szMouseRY    db "鼠标右键状态:开启",0

szSHIFTNO    db " SHIFT键状态:关闭",0
szSHIFTYES   db " SHIFT键状态:开启",0

szCtrlNO     db " Ctrl键状态:关闭",0
szCtrlYES    db " Ctrl键状态:开启",0

szMouseCN    db "鼠标中键状态:关闭",0
szMouseCY    db "鼠标中键状态:开启",0

szXBUTTON1N   db "XBUTTON1状态:关闭",0
szXBUTTON1Y   db "XBUTTON1状态:开启",0

szXBUTTON2N   db "XBUTTON1状态:关闭",0
szXBUTTON2Y   db "XBUTTON1状态:开启",0
.data? 
hInstance HINSTANCE             ? 
.const 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code 
start:     
        invoke GetModuleHandle, NULL     
        mov    hInstance,eax     
        invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL     
        invoke ExitProcess,eax 
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 
        LOCAL @szBuffer[256]:byte 
        LOCAL @hX,@hY
       
        .if      uMsg == WM_INITDIALOG                 
                        invoke    LoadIcon,hInstance,ICO_MAIN           
                        invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax  

        .elseif uMsg == WM_MOUSEMOVE
                    
                    ;在 WM_MOUSEMOVE 消息发生时,同时来的wParam的值是32位的,其低16位的值是各种虚拟密钥的象征。
                    ;而同时来的lParam值里则是当前鼠标光标的X坐标和Y坐标。lParam是32位的,其低16位是X坐标值,而高16位则是Y坐标
                    ;比如你按下SHITE键时移动鼠标,其wParam的低16位会变成 00000100B
                    ;比如你按下Ctrl键时移动鼠标,其wParam的低16位会变成  00001000B  
                    ;比如你同时按下SHITE键和Ctrl键并移动鼠标,其wParam的低16位会变成  00001100B ,就是上面2个值的相加            
                    mov eax, wParam     ;判断鼠标左键是否关闭
                    and ax, 00000001B   ;按位逻辑与操作,即把ax的值的0位留下,就是从右向左数的第1位,就是这个1,其它位都置0先
                    .if ax ==      1B   
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC02,WM_SETTEXT,0,addr szMouseLY
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC02,WM_SETTEXT,0,addr szMouseLN    
                    .endif
                    
                    mov eax, wParam     ;判断鼠标右键是否关闭  
                    and ax, 00000010B
                    .if ax ==     10B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC03,WM_SETTEXT,0,addr szMouseRY
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC03,WM_SETTEXT,0,addr szMouseRN    
                    .endif
                    
                    mov eax, wParam     ;判断SHITE键是否关闭  
                    and ax, 00000100B
                    .if ax ==    100B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC04,WM_SETTEXT,0,addr szSHIFTYES
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC04,WM_SETTEXT,0,addr szSHIFTNO    
                    .endif
                                        
                    mov eax, wParam     ;判断Ctrl键是否关闭  
                    and ax, 00001000B
                    .if ax ==   1000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC05,WM_SETTEXT,0,addr szCtrlYES
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC05,WM_SETTEXT,0,addr szCtrlNO    
                    .endif
                    
                    mov eax, wParam     ;判断鼠标中键是否关闭  
                    and ax, 00010000B
                    .if ax ==  10000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC06,WM_SETTEXT,0,addr szMouseCY
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC06,WM_SETTEXT,0,addr szMouseCN    
                    .endif
                    
                    mov eax, wParam     ;判断XBUTTON1键是否关闭,就是高级鼠标的左侧键,一般鼠标没有  
                    and ax, 00100000B
                    .if ax == 100000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC07,WM_SETTEXT,0,addr szXBUTTON1Y
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC07,WM_SETTEXT,0,addr szXBUTTON1N    
                    .endif
                    
                    mov eax, wParam     ;判断XBUTTON2键是否关闭,就是高级鼠标的右侧键,一般鼠标没有  
                    and ax,  01000000B
                    .if ax == 1000000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC08,WM_SETTEXT,0,addr szXBUTTON2Y
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC08,WM_SETTEXT,0,addr szXBUTTON2N    
                    .endif
                    
                    ;以下开始取出lParam的低16位值和高16值,即鼠标的X坐标和Y坐标
                    mov eax, lParam
                    movzx eax,ax
                    mov @hX,eax
                    mov eax, lParam
                    shr eax,16
                    movzx eax,ax
                    mov @hY,eax
                    invoke  wsprintf,addr @szBuffer,addr szCurrentXY,@hX,@hY
                    invoke  SendDlgItemMessage,hWnd,IDSTATIC01,WM_SETTEXT,0,addr @szBuffer                                
        .elseif uMsg == WM_CLOSE                 
                        invoke EndDialog, hWnd,NULL         
        .else                
                mov eax,FALSE                 
                ret                 
        .endif                 
        mov eax,TRUE         
        ret 
DlgProc endp 

end start 

;下面为rc文件内容
#include "resource.h"              //提示缺少该文件,可以在资源里下载

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define ICO_MAIN    1000    //图标
#define IDSTATIC01  21 
#define IDSTATIC02  22 
#define IDSTATIC03  23
#define IDSTATIC04  24
#define IDSTATIC05  25
#define IDSTATIC06  26
#define IDSTATIC07  27
#define IDSTATIC08  28
 
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN    ICON        "Main.ico"

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

//定义对话框
MyDialog DIALOG 10, 10, 160, 170 
STYLE  DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK 
CAPTION "对话框程序模版"
FONT 12, "方正姚体"
BEGIN
     CONTROL "可以按着CTRL或SHIFT键移动鼠标试试", -1, "Static", WS_CHILD | WS_VISIBLE, 10, 10, 200, 10
     CONTROL "当前鼠标位置:", IDSTATIC01, "Static", WS_CHILD | WS_VISIBLE, 30, 30, 100, 10 
     CONTROL "鼠标左键状态:", IDSTATIC02, "Static", WS_CHILD | WS_VISIBLE, 30, 50, 100, 10
     CONTROL "鼠标右键状态:", IDSTATIC03, "Static", WS_CHILD | WS_VISIBLE, 30, 65, 100, 10
     CONTROL "SHIFT键状态:", IDSTATIC04, "Static", WS_CHILD | WS_VISIBLE, 30, 80, 100, 10
     CONTROL "Ctrl键状态:", IDSTATIC05, "Static", WS_CHILD | WS_VISIBLE, 30, 95, 100, 10
     CONTROL "鼠标中键状态:", IDSTATIC06, "Static", WS_CHILD | WS_VISIBLE, 30, 110, 100, 10
     CONTROL "XBUTTON1状态:", IDSTATIC07, "Static", WS_CHILD | WS_VISIBLE, 30, 125, 100, 10
     CONTROL "XBUTTON2状态:", IDSTATIC08, "Static", WS_CHILD | WS_VISIBLE, 30, 140, 100, 10
END 

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

相关文章:

win32汇编环境,对 WM_MOUSEMOVE 消息的理解

;运行效果 ;win32汇编环境,对 WM_MOUSEMOVE 消息的理解 ;理解在 WM_MOUSEMOVE 消息发生时,同时来的wParam和lParam值的含义,并取出各自的值进行运用。从这例子也可以更好的理解windows的消息机制. ;WM_MOUSEMOVE消息就是当鼠标移动时,发送给窗…...

第27周JavaSpringboot电商进阶开发 2.常用功能进阶

电商常用功能进阶 - 课程笔记整理 Excel解析与处理 一、课程内容概述 本小节开始进入电商常用功能进阶部分,主要讲解以下内容: Excel的解析和处理商品图片的处理Valid注解对列表的验证订单数变化趋势图Spring Boot高级功能 二、Excel解析与处理的背…...

网络安全基础知识:从零开始了解网络安全

### 网络安全基础知识:从零开始了解网络安全 欢迎来到《零基础入门到独立参加网络安全比赛》系列教程的第一篇!在这篇文章中,我们将从最基础的概念开始,深入探讨网络安全的定义、重要性、常见的网络攻击类型,以及网络…...

【A2DP】蓝牙A2DP协议剖析:从架构到规范

目录 一、A2DP 协议架构 1.1 A2DP 协议栈结构组成 1.2 协议栈各部分的关系与作用 二、设备配置与角色定义(Configurations and roles ) 2.1 角色定义 2.2 配置示例与角色体现 三、用户需求与场景 3.1 用户需求与场景 3.2 协议限制 3.3 协议要求…...

python力扣15. 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&am…...

Linux之系统文件目录理解

1.boot/ 存储启动系统的相关文件的 2.swap/ 虚拟内存 3.dev/ 用于存放设备文件(device files)。这些文件是操作系统与硬件设备之间的接口,允许用户和程序通过文件操作的方式访问硬件资源 字符设备(Character Devices&#xf…...

uvm_transaction, uvm_seq_item, uvm_object, uvm_component的关系

uvm_object ├── uvm_component (验证环境中的静态组件) └── uvm_transaction└── uvm_sequence_item (用于sequence-driver交互的事务) 2. 核心类的作用与区别 (1) uvm_object 定位:所有UVM类的基类。 功能: 提供基础的对象操作&…...

Reflect.get和target[key]有何不同?

主要区别在this指向不同,下面输出张三还是李四?: const person{name:张三,get FullName(){return this.name;},};let personProxynew Proxy(person,{get(target,key){return Reflect.get(target,key)//或者return target[key]}});const p1{__proto__:pe…...

K8s 1.27.1 实战系列(十)PV PVC

一、核心概念与关系 ​1、PV(Persistent Volume)​ PV 是集群中的持久化存储资源,由管理员预先创建并配置,独立于 Pod 生命周期。它抽象了底层存储(如 NFS、云存储等),定义存储容量、访问模式(如 ReadWriteOnce)、回收策略(Retain/Delete/Recycle)等属性。例如,一…...

JQuery

1.jquery介绍 jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。 jQuery的版本分为1.x系列和2.x、3.x系列,1.x系列兼容低版…...

「AI 加持的高效架构」高并发场景下的服务器成本优化

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

html css 笔记

01_浏览器相关知识 五大主流浏览器: Chrome Safari IE Firefox Opera (拥有自己的内核) 四大内核: webkit Trident Gecko blink. 02_网页相关知识 构成 网址 网站 网页 网页标准: 结构 表现 行为 分别对应 HTML CSS JavaScript 03_HTML简介 H…...

通义万相 2.1:AIGC 领域的 “王炸” 组合如何颠覆创作生态?

引言 在数字化和人工智能的飞速发展中,AIGC(AI生成内容)技术已经成为推动创作、设计和内容生成领域创新的核心力量。而当通义万相2.1与蓝耘智算平台强强联手,这一“王炸”组合不仅提升了AIGC的效率,还为创作生态带来了…...

Math.NET Numerics 库怎么装

你提到的缺少的库是 Math.NET Numerics。 关于 Math.NET Numerics Math.NET Numerics 是一个用于 .NET 平台的开源数学库,提供了以下功能: 线性代数(矩阵运算、求解线性方程组等)。数值计算(积分、微分、优化等&…...

NPM安装与配置全流程详解(2025最新版)

写目录 一、环境准备与Node.js安装1. 下载Node.js(含NPM)2. 验证安装 二、NPM核心配置优化1. 全局模块与缓存路径设置2. 镜像加速3. 代理配置(企业网络适用) 三、NPM基础操作指南1. 项目初始化2. 包管理命令3. 依赖锁定与版本管理…...

python-52-基于Langchain和Faiss实现向量存储和检索的技术原理

文章目录 1 文本加载与预处理1.1 计算文本的MD5哈希值1.2 加载文本并计算哈希2 初始化向量存储2.1 基于Ollama的嵌入模型2.2 获取code和id的对应关系2.3 清空索引向量2.4 基于HuggingFaceEmbeddings的嵌入模型2.4.1 将模型下载到本地2.4.2 使用方式3 添加新文本3.1 处理新文本并…...

游戏引擎学习第140天

回顾并为今天的内容做准备 目前代码的进展到了声音混音的部分。昨天我详细解释了声音的处理方式,声音在技术上是一个非常特别的存在,但在游戏中进行声音混音的需求其实相对简单明了,所以今天的任务应该不会太具挑战性。 今天我们会编写一个…...

Jetpack Navigation 实战:Fragment 和 Activity 的交互与导航

在 Android 开发中,使用 Jetpack Navigation 组件可以方便地管理 Fragment 和 Activity 之间的导航。以下是如何使用 Jetpack Navigation 实现 Fragment 之间、Activity 之间以及 Activity 与 Fragment 之间跳转的实战示例。 1. 添加依赖 首先,在 build.…...

Linux中的基本指令(上)

目录 ls指令 判断linux中文件 pwd指令 认识路径 ​编辑 绝对路径/相对路径 cd指令 简要理解用户 理解家目录 echo指令和printf指令 touch指令 mkdir指令 cat指令 tree指令 rmdir指令和rm指令 man指令 cp指令 which指令 alias 指令 date指令 cal指令 理解…...

多用户网页在线聊天室(测试报告)

文章目录 多用户网页在线聊天室一,项目概括1.1 项目名称1.2 测试时间1.3 项目背景1.3 编写目的 二,测试计划2.1 测试环境与配置2.2 测试用例2.3实际执行用例2.3.1登录2.3.2聊天消息列表展示2.3.3聊天消息详情页展示2.3.4联系人页展示2.3.5信息的编辑与发…...

字节青训营后端方向的个人总结(2025年3月4日)

字节青训营的结营总结(25寒假) ——致青训营队友的一封信 明天就是大项目结项的日子了,不知道大家在这方面学习、精进了多少,也许有的朋友收获颇多并且已经完成了项目,我个人对此表示由衷的恭喜和祝贺。 当初自告奋…...

VX iOS分析随记

断SVC的时候看调用栈,发现里面一个特别大的ollvm函数。vx版本8054 * thread #36, queue com.apple.root.default-qos, stop reason breakpoint 4.1 frame #0: 0x0000000111ad6124 WeChat___lldb_unnamed_symbol1315083 20 WeChat___lldb_unnamed_symbol13150…...

docker 小记

一、卸载 查看当前版本 docker -v2. 如果有,先停止docker systemctl stop docker如果是yum安装,卸载方式为 #已防版本冲突,直接卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-lat…...

AI代码编程辅助工具

现在AI火的一塌糊涂,作为技术应该更应该关注当前AI对编程行业的影响。 分享下当前网络上最火的网络编程辅助工具。 以下是个人搜集到的可以对编程起辅助作用的工具: 2025年最佳AI编程辅助工具 1. GitHub Copilot 这个工具也许你已经在使用了&#xff0…...

使用 kubectl cp 命令可以在 Kubernetes Pod 和本地主机之间拷贝文件或文件夹

使用 kubectl cp 命令可以在 Kubernetes Pod 和本地主机之间拷贝文件或文件夹 kubectl cp <namespace>/<pod-name>:<pod-path> <local-path> # 从 Pod 拷贝到本地 kubectl cp <local-path> <namespace>/<pod-name>:<pod-path&g…...

【eNSP实战】交换机配置端口隔离

交换机端口隔离可以实现在同一个VLAN内对端口进行逻辑隔离&#xff0c;端口隔离分为L2层隔离和L3层隔离&#xff0c;这里只进行L2层隔离演示。 拓扑图 路由器AR1配置GE 0/0/1配置IP&#xff0c;其余PC主机各自配置IP和网关。 现将PC1到PC4四个主机全部进行L2层隔离&#xff0c…...

动态规划-第2篇

前言&#xff1a;在上一篇文章中&#xff0c;我们了解了动态规划的基本概念和解决问题的基本思路。通过分解问题、存储子问题的解&#xff0c;动态规划为我们提供了高效的解决方案。然而&#xff0c;动态规划并不是一成不变的&#xff0c;它有很多不同的技巧和变种&#xff0c;…...

数据库查问题常用OS命令汇总

1、内存使用情况查看 top //查看活跃进程占用情况 free -mh //查看操作系统当前可用内存 2、cpu使用情况 lscpu //查看os cpu情况 sar -u -f sar文件名 -s hh:mm:ss -e hh:mm:ss //查看对应日期的历史cpu情况 top //查看当前活跃进程使用cpu情况 3、io情况 iostat …...

基于springboot住院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展&#xff0c;推动了很多行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、畅通、高效的线上管理系统。当前的住院管理存在管理效率低下&…...

《用Python+PyGame开发双人生存游戏!源码解析+完整开发思路分享》

导语​ "你是否想过用Python开发一款可玩性高的双人合作游戏&#xff1f;本文将分享如何从零开始实现一款类《吸血鬼幸存者》的生存射击游戏&#xff01;包含完整源码解析、角色系统设计、敌人AI逻辑等核心技术点&#xff0c;文末提供完整代码包下载&#xff01;" 哈…...

【ES6】在ES6中自定义数组

在ES6中是允许自定义类扩展基础类型的&#xff0c;因为这些基础类型是有构造函数的&#xff0c;在JS中类就是函数。 // 自定义数组 class myArray extends Array {constructor() {super();} }let arr new myArray();arr.push(1);console.log(arr);重写Array的原生方法 ES6的…...

软件开发项目有哪些风险

软件开发项目风险主要包括 需求不明确、技术实现难度大、进度延误、成本超支、质量问题。其中&#xff0c;需求不明确可能导致功能设计反复修改&#xff1b;技术实现难度大会使开发过程中不断遇到未知挑战&#xff1b;进度延误常常因资源配置不足或变更频繁而发生&#xff1b;成…...

47.HarmonyOS NEXT 登录模块开发教程(二):一键登录页面实现

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 登录模块开发教程&#xff08;二&#xff09;&#xff1a;一键登录页面实现 文章目录 HarmonyOS NEXT 登录模块开发教程&#xff0…...

RAGFlow版本升级-Win10系统Docker

下载源码压缩包 https://github.com/infiniflow/ragflow.git 删除旧版本代码文件夹&#xff0c;把下载的代码解压到原先目录 更新一下env文件&#xff1a;ragflow/docker/.env 把值改为最新版本即可 RAGFLOW_IMAGEinfiniflow/ragflow:v0.17.1 更新一下docker docker compose -…...

dns劫持是什么?常见的劫持类型有哪些?如何预防?

DNS劫持的定义 DNS劫持&#xff08;Domain Name System Hijacking&#xff09;是一种网络攻击手段&#xff0c;攻击者通过篡改域名解析的过程&#xff0c;将用户对某个域名的访问请求重定向到错误或恶意的IP地址。这种攻击可能导致用户访问到钓鱼网站、恶意广告页面&#xff0…...

Python精进系列: isinstance 函数

Python isinstance函数&#xff1a;类型检查的得力助手 目录 Python isinstance函数&#xff1a;类型检查的得力助手引言一、isinstance函数基础语法结构简单示例 二、isinstance函数的应用场景函数参数类型检查数据处理与类型转换面向对象编程中的类型判断 三、isinstance函数…...

【基础知识】回头看Maven基础

版本日期修订人描述V1.02025/3/7nick huang创建文档 背景 项目过程中&#xff0c;对于Maven的pom.xml文件&#xff0c;很多时候&#xff0c;我通过各种参考、仿写&#xff0c;最终做出想要的效果。 但实际心里有些迷糊&#xff0c;不清楚具体哪个基础的配置所实现的效果。 今…...

练习题:81

目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 运行思路 结束语 Python题目 题目 使用字典推导式创建一个字典&#xff0c;键为 1 到 10 的整数&#xff0c;值为键的平方。 题目分析 需求理解 本题要求使用 Python 的字典…...

三角函数:从宇宙法则到AI革命的数学密钥

——跨越三千年的数学语言与现代科技全景透视 一、数学本质&#xff1a;宇宙的波动密码 1.1 拓扑学视角下的三角函数 三角函数本质是单位圆上点的坐标参数化&#xff0c;其数学表达可抽象为&#xff1a; { x cos ⁡ θ ℜ ( e i θ ) y sin ⁡ θ ℑ ( e i θ ) \begin…...

【论文笔记】Best Practices and Lessons Learned on Synthetic Data for Language Models

论文信息 论文标题&#xff1a;Best Practices and Lessons Learned on Synthetic Data for Language Models 作者信息&#xff1a; Ruibo Liu, Jerry Wei, Fangyu Liu, Chenglei Si, Yanzhe Zhang, Jinmeng Rao, Steven Zheng, Daiyi Peng, Diyi Yang, Denny Zhou1 and Andre…...

Java高频面试之集合-10

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;详解红黑树&#xff1f;HashMap为什么不用二叉树/平衡树呢&#xff1f; 一、红黑树&#xff08;Red-Black Tree&#xff…...

Keil 5 环境下STM32F4 HAL库版本MDK工程创建详细步骤(适合小白,附工程源码)

一、前期准备 1.安装好keil Keil(MDK) 5 软件安装教程-CSDN博客https://blog.csdn.net/qq_42748213/article/details/90485750 2.安装好STM32F4的芯片包 Keil5中STM32F4xx芯片包下载安装_stm32f4芯片包-CSDN博客https://blog.csdn.net/weixin_45783141/article/details/131…...

【微服务】Nacos 配置动态刷新(简易版)(附配置)

文章目录 1、实现方法2、配置依赖 yaml3、验证效果 1、实现方法 环境&#xff1a;Nacos、Java、SpringBoot等 主要是在boostrap.yaml中的data-id属性下配置refresh:true来实现动态更新 2、配置依赖 yaml 具体的版本参考官方的说明&#xff1a;官方版本说明 <!--读取boo…...

LabVIEW cRIO中CSV文件的读取

在LabVIEW cRIO中读取CSV文件&#xff0c;需通过文件传输、路径配置、数据解析等步骤实现。本文详细说明如何通过代码读取本地存储的CSV文件&#xff0c;并探讨直接通过对话框选择文件的可行性及替代方案。 一、CSV文件传输至cRIO本地存储 1. 使用NI MAX文件管理 步骤&#xf…...

双周报Vol.67: 模式匹配支持守卫、LLVM 后端发布、支持 Attribute 语法...多项核心技术更新!

2025-03-10 语言更新 模式匹配支持守卫&#xff08;Pattern Guard&#xff09; 模式守卫可以通过在模式后追加 if ... 的语法结构来指定。有模式守卫的分支只有在被模式匹配的值满足对应模式&#xff0c;并且模式守卫为真的情况下才会执行。如果模式守卫为假&#xff0c;则会…...

从青铜到王者:六大排序算法实战解析

前言 在编程的世界里,排序算法如同一颗璀璨的明珠,闪耀着智慧的光芒。它不仅是计算机科学的基础知识点,更是每一位程序员必备的技能。今天,就让我们一同走进排序算法的世界,深入探究冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序这六大经典算法的精髓所在,…...

011-base64

base64 编码 以下是C实现的Base64字符串加密算法及其原理说明&#xff0c;综合了多个技术文档的核心要点&#xff1a; 一、Base64编码原理 Base64是一种将二进制数据转换为ASCII字符的编码方式&#xff0c;核心原理基于 3字节转4字符 的转换规则&#xff1a; 分组规则&…...

汽车NVH诊断案例 | 纯电车急加速过大弯底盘异响

引言 失去发动机的掩蔽效应后&#xff0c;新能源电车的NVH问题&#xff0c;成为了困扰维修技师新难点。风噪、胎噪、电机高频啸叫等问题更容易车主识别&#xff0c;根源却难以被有效分辨。如何更精准且高效地识别电车NVH问题根源&#xff1f;今天分享的这个案例&#xff0c;内…...

springcloud gateway通过数据库获取路由信息

在 Spring Cloud Gateway 中结合 MyBatis 动态从数据库加载路由配置&#xff0c;可以实现灵活的路由管理。以下是详细实现步骤&#xff1a; 1. 数据库表设计 创建路由配置表 gateway_route&#xff1a; CREATE TABLE gateway_route (id varchar(50) NOT NULL COMMENT 路由唯一…...

QtDataVisualization使用

Qt Data Visualization 是一个开源的第三方库&#xff0c;它为Qt框架提供了高级的数据可视化功能。这个库允许开发者创建复杂的3D和2D图表&#xff0c;包括但不限于散点图、曲面图、条形图等。它基于Qt 3D模块&#xff0c;因此可以充分利用Qt 3D引擎的强大功能来呈现三维数据。…...