win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序
;运行效果
;双击后
;上源码,仔细研究里面的几条备注就理解原理了
;提取窗口程序内生成的listview列表控件的内容示例程序
;抄下面源码,可以在radasm里面直接编译运行。主要的部分加了备注。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include gdi32.inc
includelib gdi32.lib
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include gdi32.inc ;加入这个
includelib gdi32.lib ;加入这个
include comctl32.inc ;加入这个
includelib comctl32.lib ;加入这个
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data?
hInstance dd ?
hWinMain dd ?
h_List dd ?
.const
szClassName db 'MyClass',0
szCaptionMain db 'win32汇编环境窗口程序listview列表控件点击排序示例',0
sz_Colon_Signal db ':',0 ;冒号
sz_Enter_Signal db 0dh,0ah,0 ;回车换行符
szDblickName_List db "当前双击的是",0
szlistViewClassName db "SysListView32",0 ;加这个
Heading1 db "序号",0 ;第1列名称
Heading2 db "姓名",0 ;第1列名称
Heading3 db "性别",0
Heading2_1 db "刘备",0 ;第2列第1行字符串
Heading2_2 db "绍婵",0 ;第2列第2行字符串
Heading2_3 db "关羽",0
Heading2_4 db "西施",0
Heading3_1 db "男",0
Heading3_2 db "女",0
Heading3_3 db "男",0
Heading3_4 db "女",0
.data
sztemplate db "%d",0 ;格式化序号用
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
RGB macro red,green,blue ;颜色宏,让listview列表控件好看点
xor eax,eax
mov ah,blue
shl eax,8
mov ah,green
mov al,red
endm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ShowCurrentFocus proc ;提取被双击到的某项内容
LOCAL lvi:LV_ITEM
LOCAL szbuffer[256]:BYTE
LOCAL szAllShowbuffer[256]:BYTE
invoke RtlZeroMemory,addr szbuffer,sizeof szbuffer
invoke RtlZeroMemory,addr szAllShowbuffer,sizeof szAllShowbuffer ;缓冲区清空,防止此片内存有残留内容。
invoke SendMessage,h_List,LVM_GETNEXTITEM,-1, LVNI_FOCUSED ;LVM_GETNEXTITEM消息搜索有指定属性的行,比如指定LVNI_FOCUSED属性,而LVNI_FOCUSED就是具有焦点,即被选中的行
mov lvi.iItem,eax
mov lvi.iSubItem,0
mov lvi.imask,LVIF_TEXT
lea eax,szbuffer
mov lvi.pszText,eax
mov lvi.cchTextMax,256
invoke SendMessage,h_List,LVM_GETITEM,0,addr lvi
invoke lstrcat,addr szAllShowbuffer,addr Heading1
invoke lstrcat,addr szAllShowbuffer,addr sz_Colon_Signal ;加冒号
invoke lstrcat,addr szAllShowbuffer,addr szbuffer ;加提取到的数据
invoke lstrcat,addr szAllShowbuffer,addr sz_Enter_Signal ;加回车换行
mov lvi.iSubItem,1
mov lvi.imask,LVIF_TEXT
lea eax,szbuffer
mov lvi.pszText,eax
mov lvi.cchTextMax,256
invoke SendMessage,h_List,LVM_GETITEM,0,addr lvi
invoke lstrcat,addr szAllShowbuffer,addr Heading2
invoke lstrcat,addr szAllShowbuffer,addr sz_Colon_Signal
invoke lstrcat,addr szAllShowbuffer,addr szbuffer
invoke lstrcat,addr szAllShowbuffer,addr sz_Enter_Signal ;加回车换行
mov lvi.iSubItem,2
mov lvi.imask,LVIF_TEXT
lea eax,szbuffer
mov lvi.pszText,eax
mov lvi.cchTextMax,256
invoke SendMessage,h_List,LVM_GETITEM,0,addr lvi
invoke lstrcat,addr szAllShowbuffer,addr Heading3
invoke lstrcat,addr szAllShowbuffer,addr sz_Colon_Signal
invoke lstrcat,addr szAllShowbuffer,addr szbuffer
invoke MessageBox,0, addr szAllShowbuffer,addr szDblickName_List,MB_OK or MB_ICONINFORMATION
ret
_ShowCurrentFocus endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ShowListViewInfo proc ;显示列表视图里的每项信息
LOCAL lvItem:LV_ITEM
LOCAL @buffer[10]:byte
;以下填充第1行的内容
mov lvItem.imask,LVIF_TEXT
mov lvItem.iItem, 0 ;0为第1列,从0开始计算
mov lvItem.iSubItem, 0 ;0为第1行
invoke wsprintf,addr @buffer, addr sztemplate,1 ;格式化第1列第1行要显示的字符串
lea eax, @buffer
mov lvItem.pszText, eax
mov lvItem.cchTextMax, sizeof Heading1
invoke SendMessage, h_List, LVM_INSERTITEM, 0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,1
lea eax,offset Heading2_1
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,2
lea eax,offset Heading3_1
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
;以下填充第2行的内容
mov lvItem.iItem, 1
mov lvItem.iSubItem, 0
invoke wsprintf,addr @buffer, addr sztemplate,2 ;第1列第2行字符串
lea eax, @buffer
mov lvItem.pszText, eax
invoke SendMessage, h_List, LVM_INSERTITEM, 0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,1
lea eax,offset Heading2_2
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,2
lea eax,offset Heading3_2
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
;以下填充第3行的内容
mov lvItem.iItem, 2
mov lvItem.iSubItem, 0
invoke wsprintf,addr @buffer, addr sztemplate,3 ;第1列第3行字符串
lea eax, @buffer
mov lvItem.pszText, eax
invoke SendMessage, h_List, LVM_INSERTITEM, 0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,1
lea eax,offset Heading2_3
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,2
lea eax,offset Heading3_3
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
;以下填充第4行的内容
mov lvItem.iItem, 3
mov lvItem.iSubItem, 0
invoke wsprintf,addr @buffer, addr sztemplate,4 ;第1列第4行字符串
lea eax, @buffer
mov lvItem.pszText, eax
invoke SendMessage, h_List, LVM_INSERTITEM, 0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,1
lea eax,offset Heading2_4
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
mov lvItem.imask,LVIF_TEXT
mov lvItem.iSubItem,2
lea eax,offset Heading3_4
mov lvItem.pszText,eax
invoke SendMessage,h_List, LVM_SETITEM,0, addr lvItem
ret
_ShowListViewInfo endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_List_InsertColumn proc ;插入列数及名称的函数
LOCAL lvc:LV_COLUMN
mov lvc.imask,LVCF_TEXT+LVCF_WIDTH
mov lvc.pszText,offset Heading1 ;第1列的标题栏名称
mov lvc.lx,100 ;宽度
invoke SendMessage,h_List, LVM_INSERTCOLUMN, 0, addr lvc
or lvc.imask,LVCF_FMT
mov lvc.fmt,LVCFMT_LEFT
mov lvc.pszText,offset Heading2 ;第2列的标题栏名称
mov lvc.lx,150
invoke SendMessage,h_List, LVM_INSERTCOLUMN, 1 ,addr lvc
mov lvc.pszText,offset Heading3
mov lvc.lx,125
invoke SendMessage,h_List, LVM_INSERTCOLUMN, 2 ,addr lvc
ret
_List_InsertColumn endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 窗口过程
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcWinMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
local @stPs:PAINTSTRUCT
local @stRect:RECT
local @hDc
LOCAL @DEFAULT_GUI_FONT,@OLD_DEFAULT_GUI_FONT ;加入这个,字体使用
mov eax,uMsg
;********************************************************************
.if eax == WM_PAINT
invoke BeginPaint,hWnd,addr @stPs
invoke EndPaint,hWnd,addr @stPs
.elseif eax == WM_CREATE
mov eax,hWnd
mov hWinMain,eax
invoke GetStockObject,DEFAULT_GUI_FONT
mov @DEFAULT_GUI_FONT,eax
invoke CreateWindowEx, NULL, addr szlistViewClassName, NULL, LVS_REPORT or WS_CHILD or WS_VISIBLE, \ ;名单列表视图
0,0,0,0,hWnd, NULL, hInstance, NULL
mov h_List, eax
mov eax,LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES or LVS_EX_SUBITEMIMAGES ;设置ListView全行选择,网格等样式.
invoke SendMessage,h_List,LVM_SETEXTENDEDLISTVIEWSTYLE,0,eax
invoke ImageList_Create,0,35,ILC_COLORDDB or ILC_MASK,0,0 ;调整ImageList高,就可调整listView行高,就是把它撑大点
invoke SendMessage,h_List,LVM_SETIMAGELIST,LVSIL_SMALL,eax
invoke SendMessage,h_List,WM_SETFONT,@DEFAULT_GUI_FONT,TRUE
RGB 0,0,0
invoke SendMessage,h_List,LVM_SETTEXTCOLOR,0,eax ;设置文本颜色
RGB 131,175,155
invoke SendMessage,h_List,LVM_SETBKCOLOR,0,eax ;设置背景颜色
RGB 131,175,155
invoke SendMessage,h_List,LVM_SETTEXTBKCOLOR,0,eax ;设置文本背景颜色
invoke MoveWindow,h_List,0,0,375,520,TRUE ;调整列表视图的位置才能显示出来
invoke _List_InsertColumn ;调用初始化ListView控件的函数
invoke _ShowListViewInfo ;调用初始化显示列表视图内容的函数
.elseif eax== WM_NOTIFY ;当事件发生或控件需要一些信息时,由公共控件发送到其父窗口。
push edi
mov edi,lParam ;接收到了 WM_NOTIFY 消息后,lParam 包含了指向 NMHDR 型结构体变量的指针。我们通过把列表视图控件的值和 NMHDR 型
assume edi:ptr NMHDR ;结构体变量中的 hwndFrom 成员变量的值比较来判断,如果相等的话就可以确定消息是列表视图控件发送的
mov eax,[edi].hwndFrom
.if eax==h_List
.if [edi].code==NM_DBLCLK ;双击项目显示第一条信息
invoke _ShowCurrentFocus ;调用提取listview控件内容并弹出信息的函数
.endif
.endif
pop edi
;********************************************************************
.elseif eax == WM_CLOSE
invoke DestroyWindow,hWinMain
invoke PostQuitMessage,NULL
;********************************************************************
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.endif
;********************************************************************
xor eax,eax
ret
_ProcWinMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WinMain proc
local @stWndClass:WNDCLASSEX
local @stMsg:MSG
invoke InitCommonControls ;加上这句
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
;********************************************************************
; 注册窗口类
;********************************************************************
invoke LoadCursor,0,IDC_ARROW
mov @stWndClass.hCursor,eax
push hInstance
pop @stWndClass.hInstance
mov @stWndClass.cbSize,sizeof WNDCLASSEX
mov @stWndClass.style,CS_HREDRAW or CS_VREDRAW
mov @stWndClass.lpfnWndProc,offset _ProcWinMain
mov @stWndClass.hbrBackground,COLOR_WINDOW + 1
mov @stWndClass.lpszClassName,offset szClassName
invoke RegisterClassEx,addr @stWndClass
;********************************************************************
; 建立并显示窗口
;********************************************************************
invoke CreateWindowEx,WS_EX_CLIENTEDGE,offset szClassName,offset szCaptionMain,\
WS_OVERLAPPEDWINDOW,\
100,100,395,420,\
NULL,NULL,hInstance,NULL
mov hWinMain,eax
invoke ShowWindow,hWinMain,SW_SHOWNORMAL
invoke UpdateWindow,hWinMain
;********************************************************************
; 消息循环
;********************************************************************
.while TRUE
invoke GetMessage,addr @stMsg,NULL,0,0
.break .if eax == 0
invoke TranslateMessage,addr @stMsg
invoke DispatchMessage,addr @stMsg
.endw
ret_WinMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
call _WinMain
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
相关文章:

win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序
;运行效果 ;双击后 ;上源码,仔细研究里面的几条备注就理解原理了 ;提取窗口程序内生成的listview列表控件的内容示例程序 ;抄下面源码,可以在radasm里面直接编译运行。主要的部分加了备注。 ;>>>>>>>>>>>>>>…...

mysql主从断开后问题排查及修复
服务器mysql主从同步断开后,进行主从恢复 问题:mysql的主从断开了,在从服务器上通过以下命令查看状态,发现Slave_SQL_Running为No SHOW SLAVE STATUS\G;Slave_IO_Running:表示从服务器读取主服务器日志的线程 Slave_…...

[2025] 如何在 Windows 计算机上轻松越狱 IOS 设备
笔记 1. 首次启动越狱工具时,会提示您安装驱动程序。单击“是”确认安装,然后再次运行越狱工具。 2. 对于Apple 6s-7P和iPad系列(iOS14.4及以上),您应该点击“Optinos”并勾选“允许未经测试的iOS/iPadOS/tvOS版本”&…...

计算机网络—————考研复试
第一章、计算机网络体系结构 1. OSI参考模型和TCP/IP模型: OSI与TCP/IP的记忆方法:只需把OSI的七层记住,将应用层、表示层、会话层一起记,到TCP/IP变成应用层。物理层和数据链路层换成网络接口层。把网络层换个字变成网际层。 而…...

[pdf、epub]260道《软件方法》强化自测题业务建模需求分析共216页(202412更新)
DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 260道《软件方法》强化自测题业务建模需求分析共216页(202412更新) 已上传到本CSDN账号的资源 如果下载不到,也可以访问以下链接: ht…...

LeetCode - 初级算法 数组(只出现一次的数字)
只出现一次的数字 这篇文章讨论如何找到一个数组中只出现一次的数字,确保算法的时间复杂度为线性,且只使用常量额外空间。 免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 描述 给定一个非空整数数组 nums,除了某个元素只出现一次以外,其余每个元素均出现两…...
Android性能优化概述
应用启动速度慢页面加载慢交互卡顿CrashANR 针对这些问题,可以逐一进行优化 1.启动优化 Android应用启动分为冷启动和热启动以及初次安装启动,此处只分析冷启动及热启动 冷启动:当设备无该应用进程时,用户操作拉起应用ÿ…...
C++ 实现map容器从大到小排序
map容器默认从小到大排序 利用仿函数可以修改map容器的排序规则为从大到小 示例: #include<iostream> #include<string> #include<map> using namespace std; class MyCompare { public: bool operator()(const int v1, const int v2) co…...
java中的文件操作
基础知识 1.File类对象的常用方法 一、 创建文件和目录 1.createNewFile() 用于创建一个新的文件,如果文件已经存在,则返回 false File file new File("C:\\Users\\P51\\Desktop\\file.txt"); file.createNewFile(); 2.mkdir() 用于创建一个…...

修复OpenHarmony系统相机应用横屏拍照按钮点不到的问题
适配OpenHarmony系统相机应用横屏UI, 相关pr: https://gitee.com/openharmony/applications_camera/pulls/233/files 适配效果 如何安装 编译好的hap提供在附件中 1.预置在源码,随固件安装 2.安装hap hdc shell "mount -o remount,rw /"…...

2024165读书笔记|《飞花令·合》——人生飘忽百年内,且须酣畅万古情
2024165读书笔记|《飞花令合》—— 人生飘忽百年内,且须酣畅万古情 屈原班婕妤曹植刘绘卢思道卢照邻苏味道刘希夷李白高适杜甫司空曙白居易温庭筠韦庄窦叔向张泌林逋柳永晏殊欧阳修李觏舒亶秦观陈瓘李清照陆游辛弃疾姜夔蒋捷吴伟业纳兰性德张惠言邓廷桢 《飞花令合》…...

哈夫曼编码(Huffman Coding)与哈夫曼树(Huffman Tree)
已知字符集{a,b,c,d,e,f},若各字符出现的次数分别为6,3,8,2,10,4,则对应字符集中各字符的哈夫曼编码可能是( )。 A.00,1011,01࿰…...
Django项目中高效管理和使用选择常量
引言 在开发Django项目时,我们经常需要处理各种选择字段,比如用户类型、订单状态或产品分类等。如何有效地管理这些选择常量,使其在整个项目中保持一致性,同时又易于维护和更新呢?本文将介绍一种在Django项目中集中管理和使用选择常量的方法。 正文 © ivwdcwso (I…...
拦截器(Interceptor)的使用
在Java Web开发中,拦截器(Interceptor)是一种动态拦截请求和响应的对象,它可以在请求被控制器处理之前和之后执行一些预处理和后处理逻辑。要定义一个拦截器并使其生效,通常需要以下几个步骤: 1. 定义拦截…...
线段树例题题解
卫星覆盖(NOI1997) 题面: SERCOI(Space-Earth Resource Cover-Observe lnstitute) 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…...
AI提示词工程的“优化背后”:如何通过精准提示提升模型性能?
提示词工程(Prompt Engineering)已经成为推动AI模型如GPT等发挥其强大能力的核心。AI模型的输出质量与输入的提示词密切相关。因为之前已经大致用过一段时间提示词,所以这篇文章集中在有一定基础,起码对提示词不陌生,想要去设计和优化提示词+处理复杂问题的时候不知道如何…...
c# Record关键字
在 C# 9.0 中引入了 record 关键字,用于定义记录类型(Record Types)。记录类型是一种轻量级的数据载体,专注于表示数据,它提供了内置的相等性比较、生成属性和方法等功能,使得编写数据类更加简洁和高效。 …...

高效管理 Nginx 的利器:nginxWebUI 指南和 Docker 部署安装过程
前言 Nginx WebUI 是一个为 Nginx 提供图形化管理界面的工具。通过 WebUI,用户可以轻松管理 Nginx 配置,而无需直接编辑配置文件,尤其适合新手用户和频繁修改配置的场景。 官网文档:nginxWebUI - 文档 本文将分享为什么选择 ngin…...

家政预约小程序04活动管理表结构设计
目录 1 创建活动表2 创建活动规则表3 创建活动参与记录表总结 为了满足我们日常的营销,我们通常需要搞一些活动,比如满减、折扣、团购等。启动活动后,会在首页进行显示,当用户访问小程序的时候,就可以参与活动…...

谷歌浏览器的在线存储功能使用方法
谷歌浏览器不仅是目前全球使用最广泛的网络浏览器之一,它还集成了许多实用的功能来提升用户体验。其中,谷歌浏览器的在线存储功能允许用户将数据保存在云端,实现跨设备的无缝同步和共享。本文将详细介绍如何在谷歌浏览器中使用这一功能。 一、…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...

ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...