win32汇编环境下,对话框程序中生成listview列表控件,点击标题栏自动排序的示例

 ;;启动后的效果

;点击性别后的效果

;把代码抄进radasm里面,可以直接编译运行。重要的地方加了备注。
;这个有点复杂,重要的地方加了备注
;以下是ASM文件
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .386
        .model flat, stdcall
        option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include        user32.inc
includelib    user32.lib
include        kernel32.inc
includelib    kernel32.lib

include        gdi32.inc         ;加入这个
includelib    gdi32.lib         ;加入这个
include         comctl32.inc      ;加入这个
includelib      comctl32.lib      ;加入这个
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN    equ        1000h    ;图标
DLG_MAIN    equ        1
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .data?

hInstance    dd  ?

h_List          dd  ?
hSortColumn     dd  ?     ;要排序的第几列

        .const
szClassName    db    'MyClass',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
hProjectOrder01   dd             0         ;每列的排序状态,为0为未排序,为1为升序,为2为降序
hProjectOrder03   dd             0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
RGB macro red,green,blue ;颜色宏,让listview列表控件好看点
  xor eax,eax 
  mov ah,blue 
  shl eax,8 
  mov ah,green 
  mov al,red 
endm 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_String2Dword proc uses ecx edi edx esi String:DWORD    ;转换字符串为数字的函数,返回值为转换成功的数字
        LOCAL Result:DWORD 

        mov Result,0 
        mov edi,String 
        invoke lstrlen,String 
        .while eax!=0 
        xor edx,edx 
        mov dl,byte ptr [edi] 
        sub dl,"0" 
        mov esi,eax 
        dec esi 
        push eax 
        mov eax,edx 
        push ebx 
        mov ebx,10 
        .while esi > 0 
        mul ebx 
        dec esi 
        .endw 
        pop ebx 
        add Result,eax 
        pop eax 
        inc edi 
        dec eax 
        .endw 
        mov eax,Result 
        ret 
_String2Dword endp 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_CompareFunc proc uses edi lParam1:DWORD, lParam2:DWORD, SortType:DWORD   ;列表视图使用的比较函数,lParam1 是第一项的当前索引, lParam2 是第二项的当前索引
        LOCAL buffer[256]:BYTE 
        LOCAL buffer1[256]:BYTE 
        LOCAL lvi:LV_ITEM 
        LOCAL @szBuffer[256]:BYTE 
  
        invoke  RtlZeroMemory,addr buffer,sizeof buffer
        invoke  RtlZeroMemory,addr buffer1,sizeof buffer1
        mov lvi.imask,LVIF_TEXT 
        lea eax,buffer 
        mov lvi.pszText,eax 
        mov lvi.cchTextMax,256 
        .if SortType==1  ;比如 1 代表根据序号按升序排列所有的项目
                mov eax,hSortColumn
                mov lvi.iSubItem,eax 
                invoke SendMessage,h_List,LVM_GETITEMTEXT,lParam1,addr lvi 
                invoke _String2Dword,addr buffer 
                mov edi,eax 
                invoke SendMessage,h_List,LVM_GETITEMTEXT,lParam2,addr lvi 
                invoke _String2Dword,addr buffer 
                sub edi,eax 
               mov eax,edi 
        .elseif SortType==2 
                mov eax,hSortColumn
                mov lvi.iSubItem,eax 
                invoke SendMessage,h_List,LVM_GETITEMTEXT,lParam1,addr lvi 
                invoke _String2Dword,addr buffer 
                mov edi,eax 
                invoke SendMessage,h_List,LVM_GETITEMTEXT,lParam2,addr lvi 
                invoke _String2Dword,addr buffer 
                sub eax,edi 
       .endif 
       ret 
_CompareFunc endp 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_UpdatelParam proc uses edi                               ;更新重置列表视图内容
   LOCAL lvi:LV_ITEM 

   invoke SendMessage,h_List, LVM_GETITEMCOUNT,0,0 
   mov edi,eax 
   mov lvi.imask,LVIF_PARAM 
   mov lvi.iSubItem,0 
   mov lvi.iItem,0 
   .while edi>0 
     push lvi.iItem 
     pop lvi.lParam 
     invoke SendMessage,h_List, LVM_SETITEM,0,addr lvi 
     inc lvi.iItem 
     dec edi 
   .endw 
   ret 
_UpdatelParam 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 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain    proc    uses ebx edi esi hWnd,wMsg,wParam,lParam
        LOCAL   @DEFAULT_GUI_FONT,@OLD_DEFAULT_GUI_FONT   ;加入这个
        
        mov    eax,wMsg
        .if    eax == WM_CLOSE
            invoke    EndDialog,hWnd,NULL
        .elseif    eax == WM_INITDIALOG
            invoke    LoadIcon,hInstance,ICO_MAIN
            invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,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,25,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,70,600,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==LVN_COLUMNCLICK      ;点击了列标题条
                                        assume edi:ptr NM_LISTVIEW 
                                        .if [edi].iSubItem == 0           ;如果单击了第1列标题条
                                                .if hProjectOrder01==0 || hProjectOrder01==2     ;用状态变量来保持当前的排序顺序。0 代表没有排序,1代表升序,2 代表降序
                                                        mov hSortColumn,0
                                                        invoke SendMessage,h_List,LVM_SORTITEMS,1,addr _CompareFunc    ;发送消息设成升序
                                                        invoke _UpdatelParam 
                                                        mov hProjectOrder01,1
                                                .else 
                                                        mov hSortColumn,0
                                                        invoke SendMessage,h_List,LVM_SORTITEMS,2,addr _CompareFunc 
                                                        invoke _UpdatelParam 
                                                        mov hProjectOrder01,2
                                                .endif 
                                        .elseif  [edi].iSubItem == 2      ;如果单击了第3列标题条    
                                                .if hProjectOrder03==0 || hProjectOrder03==2   
                                                        mov hSortColumn,1
                                                        invoke SendMessage,h_List,LVM_SORTITEMS,1,addr _CompareFunc  
                                                        invoke _UpdatelParam 
                                                        mov hProjectOrder03,1
                                                .else 
                                                        mov hSortColumn,1
                                                        invoke SendMessage,h_List,LVM_SORTITEMS,2,addr _CompareFunc 
                                                        invoke _UpdatelParam
                                                        mov hProjectOrder03,2
                                                .endif 
                                        .endif 
                                        assume edi:ptr NMHDR 
                                .endif 
                        .endif 
                        pop edi 
                        
        .elseif    eax == WM_COMMAND
            mov    eax,wParam
            .if    ax == IDOK
                invoke    EndDialog,hWnd,NULL
            .endif
        .else
            mov    eax,FALSE
            ret
        .endif
        mov    eax,TRUE
        ret

_ProcDlgMain    endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
        invoke    GetModuleHandle,NULL
        mov    hInstance,eax
        invoke    DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
        invoke    ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        end    start;以下是rc资源文件
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#include        <resource.h>
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define    ICO_MAIN        0x1000    //图标
#define    DLG_MAIN        1
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN    ICON        "Main.ico"
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DLG_MAIN DIALOG 50, 50, 250, 385
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "win32汇编环境窗口程序中生成listview列表控件点击标题栏自动排序的示例"
FONT 9, "宋体"
{
 ICON ICO_MAIN, -1, 10, 11, 18, 21
 CTEXT "简单的对话框例子\n用Win32ASM编写", -1, 36, 14, 70, 19
 DEFPUSHBUTTON "退出(&X)", IDOK, 150, 14, 50, 14
// CONTROL "", -1, "Static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 6, 39, 103, 1
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498821.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业以太网交换机怎么挑选?

在现代工业中&#xff0c;工业以太网交换机是网络的核心设备。正确选择适合的交换机&#xff0c;直接关系到工业网络的运行稳定性和系统的可靠性。接下来&#xff0c;我们将围绕选型时需要重点考虑的几个方面展开讨论&#xff0c;并为您提供一些实用建议。 性能与传输速度 选择…

如何在 Ubuntu 22.04 上安装并开始使用 RabbitMQ

简介 消息代理是中间应用程序&#xff0c;在不同服务之间提供可靠和稳定的通信方面发挥着关键作用。它们可以将传入的请求存储在队列中&#xff0c;并逐个提供给接收服务。通过以这种方式解耦服务&#xff0c;你可以使其更具可扩展性和性能。 RabbitMQ 是一种流行的开源消息代…

Zabbix企业级分布式监控系统

第一章&#xff1a;监控概念及Zabbix部署 监控概述 对于监控系统在企业架构中不是新的技术&#xff0c;但却是必不可少的重要组成部分&#xff0c;所谓无监控&#xff0c;不运维&#xff01; 监控系统可以帮助运维、开发、测试等人员及时的发现服务器出现的故障&#xff0c;…

前端安全措施:接口签名、RSA加密、反调试、反反调试、CAPTCHA验证

文章目录 引言I 设置防爬虫功能使用robots.txt文件通过配置HTTP头部中的X-Robots-TagII 禁止打开开发者工具反复清空控制台无限debugger反调试检查是否按下了F12或其他调试快捷键禁用右键监听调试快捷键例子III 屏蔽粘贴/复制/剪切/选中IV 知识扩展: javascript内置命令调试分…

ThinkPHP 8高效构建Web应用-第一个简单的MVC应用示例

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 我们先实现一…

Visual Studio 中增加的AI功能

前言&#xff1a; 人工智能的发展&#xff0c;在现在&#xff0c;编程技术的IDE里面也融合了AI的基本操做。本例&#xff0c;以微软的Visual Studio中的人工智能的功能介绍例子。 本例的环境&#xff1a; Visual Studio 17.12 1 AI 智能变量检测&#xff1a; 上图展示了一…

理解生成协同促进?华为诺亚提出ILLUME,15M数据实现多模态理解生成一体化

多模态理解与生成一体化模型&#xff0c;致力于将视觉理解与生成能力融入同一框架&#xff0c;不仅推动了任务协同与泛化能力的突破&#xff0c;更重要的是&#xff0c;它代表着对类人智能&#xff08;AGI&#xff09;的一种深层探索。通过在单一模型中统一理解与生成&#xff…

TTL 传输中过期问题定位

问题&#xff1a; 工作环境中有一个acap的环境&#xff0c;ac的wan口ip是192.168.186.195/24&#xff0c;ac上lan上有vlan205&#xff0c;其ip子接口地址192.168.205.1/24&#xff0c;ac采用非nat模式&#xff0c;而是路由模式&#xff0c;在上级路由器上有192.168.205.0/24指向…

015-spring-动态原理、AOP的xml和注解方式

强制使用cglib动态代理 spring-AOP的使用

Postman测试big-event

报错500。看弹幕&#xff0c;知道可能是yml或sql有问题。 所以检查idea工作台&#xff0c; 直接找UserMapper检查&#xff0c;发现完全OK。 顺着这个error发现可能是sql有问题。因为提示是sql问题&#xff0c;而且是有now()的那个sql。 之后通过给的课件&#xff0c;复制课件…

CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)

文章目录 1.Introduction1.1 What software engineering is and why it is important&#xff08;什么是软件工程&#xff0c;为什么它很重要&#xff09;1.1 We can’t run the modern world without software&#xff08;我们的世界离不开软件&#xff09;1.1.1 What is Soft…

基于SpringBoot的题库管理系统的设计与实现(源码+SQL+LW+部署讲解)

文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…

Mac 12.1安装tiger-vnc问题-routines:CRYPTO_internal:bad key length

背景&#xff1a;因为某些原因需要从本地mac连接远程linxu桌面查看一些内容&#xff0c;必须使用桌面查看&#xff0c;所以ssh无法满足&#xff0c;所以决定安装vnc客户端。 问题&#xff1a; 在mac上通过 brew install tiger-vnc命令安装, 但是报错如下&#xff1a; > D…

《探秘开源大模型:AI 世界的“超级引擎”》

《探秘开源大模型:AI 世界的“超级引擎”》 一、开源大模型崛起之路二、开源大模型发展历程回顾(一)早期奠基:理论突破与初步实践(二)快速发展:百花齐放的模型格局(三)当下态势:走向成熟与多元融合三、开源大模型核心技术剖析(一)Transformer 架构:基石之稳(二)…

SWM221系列芯片之电机应用及控制

经过对SWM221系列的强大性能及外设资源&#xff0c;TFTLCD彩屏显示及控制进行了整体介绍后&#xff0c;新迎来我们的电控篇---SWM221系列芯片之电机应用及控制。在微控制器市场面临性能、集成度与成本挑战的当下&#xff0c;SWM221系列芯片以其卓越性能与创新设计&#xff0c;受…

2024165读书笔记|《飞花令·合》——人生飘忽百年内,且须酣畅万古情

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

露营小程序搭建有哪些步骤?小程序里面可以找个露营搭子

露营不仅仅是走进大自然的旅程&#xff0c;它也成为了一种社交和体验式的活动。随着小程序的普及&#xff0c;露营活动也越来越多地开始在线上开展。通过搭建一个露营小程序&#xff0c;商家不仅可以为用户提供更多的露营选择&#xff0c;还可以帮助他们找到合适的露营搭子。那…

Vue 针对浏览器参数过长实现浏览器参数加密解密

1、首先安装crypto-js npm install crypto-js 1、在router/index.js中添加如下代码 在utils工具类添加如下 encryption.js源码 import CryptoJS from crypto-js import CryptoJSCore from crypto-js/core import AES from crypto-js/aes import ZeroPadding from crypto-js/…

Unity-Mirror网络框架-从入门到精通之Basic示例

文章目录 前言Basic示例场景元素预制体元素代码逻辑BasicNetManagerPlayer逻辑SyncVars属性Server逻辑Client逻辑 PlayerUI逻辑 最后 前言 在现代游戏开发中&#xff0c;网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架&#xff0c;专为多人…

AIA - APLIC之二

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 对于APLIC实现的每一个中断域,都存在一个独享的内存映射的控制区域,用来处理该中断域的中断。 该控制区域大小是由4KB的倍数,并与4KB地址边界对齐,最小的有效控制区域是16KB。 接下来,本文将详细讲解,AP…