- 浏览: 4412994 次
- 性别:
- 来自: 湛江
博客专栏
-
SQLite源码剖析
浏览量:80136
-
WIN32汇编语言学习应用...
浏览量:70366
-
神奇的perl
浏览量:103607
-
lucene等搜索引擎解析...
浏览量:286603
-
深入lucene3.5源码...
浏览量:15056
-
VB.NET并行与分布式编...
浏览量:67817
-
silverlight 5...
浏览量:32293
-
算法下午茶系列
浏览量:46075
文章分类
最新评论
-
yoyo837:
counters15 写道目前只支持IE吗?插件的东西是跨浏览 ...
Silverlight 5 轻松开启绚丽的网页3D世界 -
shuiyunbing:
直接在前台导出方式:excel中的单元格样式怎么处理,比如某行 ...
Flex导出Excel -
di1984HIT:
写的很好~
lucene入门-索引网页 -
rjguanwen:
在win7 64位操作系统下,pygtk的Entry无法输入怎 ...
pygtk-entry -
ldl_xz:
http://www.9958.pw/post/php_exc ...
PHPExcel常用方法汇总(转载)
(一)
Invoke checkmenuitem,hmenu,ebx,eax
.elseif eax>=IDM_BIG&&eax<=DM_DETAIL
invokecheckmenuradioitem,hmenu,IDM_BIG,IDM_DETAIL,eax,MF_BYCOMMAND
.endif
重点与难点:
1、关于checkmenuitem
The CheckMenuItem function sets the state of the specified menuitem's check-mark attribute to either selected or clear.
设置菜单项的check状态的选择或清除
Syntax
DWORD CheckMenuItem(
HMENU hmenu,
UINT uIDCheckItem,
UINT uCheck
);
参数说明
UCHECK如下:
MF_BYCOMMAND uIDCheckItem参数为为命令ID
Indicates that the uIDCheckItem parameter gives the identifier ofthe menu item. The MF_BYCOMMAND flag is the default, if neither theMF_BYCOMMAND nor MF_BYPOSITION flag is specified.
MF_BYPOSITION uIDCheckItem参数为从0起始的菜单序号
Indicates that the uIDCheckItem parameter gives the zero-basedrelative position of the menu item.
MF_CHECKED 设置菜单项为选择
Sets the check-mark attribute to the selected state.
MF_UNCHECKED 设置菜单项为没有选择
Sets the check-mark attribute to the clear state
2、关于checkmenuradioitem
The CheckMenuRadioItem function checks a specified menu item andmakes it a radio item. At the same time, the function clears allother menu items in the associated group and clears the radio-itemtype flag for those items
用于radio类型的菜单项选择,选中某一项并清除其它项的选择标志,其它项由 UINT idFirst,
UINT idLast两个参数指定。
Syntax
BOOL CheckMenuRadioItem(
HMENU hmenu,
UINT idFirst,
UINT idLast,
UINT idCheck,
UINT uFlags
);
uFlags 参数:If this parameter is MF_BYCOMMAND, the other parametersspecify menu item identifiers(命令ID). If it is MF_BYPOSITION, theother parameters specify the menu item positions(菜单序号)
(二)
.elseif eax==wm_bycommand
mov eax,wparam
movzx eax,ax
..if eax==IDM_HELP||IDM_ABOUT
invoke _displaymenuitem,wparam
.else
invoke defwindowproc,hwnd,umsg,wparam,lparam;交给默认窗口处理程序处理
ret
.endif
.elseif
(三)右键弹出菜单
.elseif eax==WM_RBUTTONDOWN
invoke getcursorpos,addr @stpos;
invoketrackpopupmenu,hsubmenu,TPM_LEFT,@stops.x,@stops.y,null,hwnd,null;
.elseif eax==wm_close
call _quit
.else
invoke defwindowproc,hwnd,umsg,wparam,lparam;交给默认窗口处理程序处理
ret
.endif
重点与难点:
1、 the GetCursorPos function retrieves the cursor's position, inscreen coordinates.
返回当前光标位置,即鼠标位置是是相对于屏幕的座标。
Syntax
BOOL GetCursorPos(
LPPOINT lpPoint
);
2、 trackpopupmenu
The TrackPopupMenu function displays a shortcut menu at thespecified location and tracks the selection of items on the menu.The shortcut menu can appear anywhere on the screen.
在屏幕的任何指定位置显示一个弹出菜单。
Syntax
BOOL TrackPopupMenu(
HMENU hMenu,
UINT uFlags,
int x,
int y,
int nReserved,
HWND hWnd,
HWND prcRect
);
参数说明
(1) uFlags
TPM_CENTERALIGN
If this flag is set, the function centers the shortcut menuhorizontally relative to the coordinate specified by the xparameter.
TPM_LEFTALIGN
If this flag is set, the function positions the shortcut menu sothat its left side is aligned with the coordinate specified by thex parameter.
TPM_RIGHTALIGN
Positions the shortcut menu so that its right side is aligned withthe coordinate specified by the x parameter.
Use one of the following flags to specify how the functionpositions the shortcut menu vertically.
TPM_BOTTOMALIGN
If this flag is set, the function positions the shortcut menu sothat its bottom side is aligned with the coordinate specified bythe y parameter.
TPM_TOPALIGN
If this flag is set, the function positions the shortcut menu sothat its top side is aligned with the coordinate specified by the yparameter.
TPM_VCENTERALIGN
If this flag is set, the function centers the shortcut menuvertically relative to the coordinate specified by the yparameter.
Use the following flags to determine the user selection withouthaving to set up a parent window for the menu.
以上为菜单显示时的对齐方式相对于x、y参数
TPM_NONOTIFY用户选择菜单项时不发送通知消息
If this flag is set, the function does not send notificationmessages when the user clicks on a menu item.
TPM_RETURNCMD 返回命令ID
If this flag is set, the function returns the menu item identifierof the user's selection in the return value.
Use one of the following flags to specify which mouse button theshortcut menu tracks.
TPM_LEFTBUTTON 左键键选择菜单
If this flag is set, the user can select menu items with only theleft mouse button.
TPM_RIGHTBUTTON 右键选择菜单
If this flag is set, the user can select menu items with both theleft and right mouse buttons.
Windows 98/Me, Windows 2000/XP:Use any reasonable combination ofthe following flags to modify the animation of a menu. For example,by selecting a horizontal and a vertical flag you can achievediagonal animation. 可以用下列参数来展示菜单显示的动态效果
TPM_HORNEGANIMATION
Animates the menu from right to left.
TPM_HORPOSANIMATION
Animates the menu from left to right.
TPM_NOANIMATION
Displays menu without animation.
TPM_VERNEGANIMATION
Animates the menu from bottom to top.
TPM_VERPOSANIMATION
Animates the menu from top to bottom
(2) nReserved
Reserved; must be zero. 必须为null
(3) hWnd 要弹出菜单的句柄
[in] Handle to the window that owns the shortcut menu. This windowreceives all messages from the menu. The window does not receive aWM_COMMAND message from the menu until the function returns. If youspecify TPM_NONOTIFY in the uFlags parameter, the function does notsend messages to the window identified by hWnd. However, you muststill pass a window handle in hWnd. It can be any window handlefrom your application
仅指窗口的弹出菜单类型,在本函数返回后,窗口才会接收到wm_command消息,但POPUP类型的菜单只能在第二层中定义,如文件属于第一层,打开、新建等才属于第二层,所以hdunmrnu参数取得了子菜单句柄,invokegetsubmenu.hnemu,npos
,mov hsubmenu,eax。npos指定要取得的第一层菜单的序号,如第一层有2个菜单项,文件和查看,则文件为0,查看为1。
Invoke checkmenuitem,hmenu,ebx,eax
.elseif eax>=IDM_BIG&&eax<=DM_DETAIL
invokecheckmenuradioitem,hmenu,IDM_BIG,IDM_DETAIL,eax,MF_BYCOMMAND
.endif
重点与难点:
1、关于checkmenuitem
The CheckMenuItem function sets the state of the specified menuitem's check-mark attribute to either selected or clear.
设置菜单项的check状态的选择或清除
Syntax
DWORD CheckMenuItem(
HMENU hmenu,
UINT uIDCheckItem,
UINT uCheck
);
参数说明
UCHECK如下:
MF_BYCOMMAND uIDCheckItem参数为为命令ID
Indicates that the uIDCheckItem parameter gives the identifier ofthe menu item. The MF_BYCOMMAND flag is the default, if neither theMF_BYCOMMAND nor MF_BYPOSITION flag is specified.
MF_BYPOSITION uIDCheckItem参数为从0起始的菜单序号
Indicates that the uIDCheckItem parameter gives the zero-basedrelative position of the menu item.
MF_CHECKED 设置菜单项为选择
Sets the check-mark attribute to the selected state.
MF_UNCHECKED 设置菜单项为没有选择
Sets the check-mark attribute to the clear state
2、关于checkmenuradioitem
The CheckMenuRadioItem function checks a specified menu item andmakes it a radio item. At the same time, the function clears allother menu items in the associated group and clears the radio-itemtype flag for those items
用于radio类型的菜单项选择,选中某一项并清除其它项的选择标志,其它项由 UINT idFirst,
UINT idLast两个参数指定。
Syntax
BOOL CheckMenuRadioItem(
HMENU hmenu,
UINT idFirst,
UINT idLast,
UINT idCheck,
UINT uFlags
);
uFlags 参数:If this parameter is MF_BYCOMMAND, the other parametersspecify menu item identifiers(命令ID). If it is MF_BYPOSITION, theother parameters specify the menu item positions(菜单序号)
(二)
.elseif eax==wm_bycommand
mov eax,wparam
movzx eax,ax
..if eax==IDM_HELP||IDM_ABOUT
invoke _displaymenuitem,wparam
.else
invoke defwindowproc,hwnd,umsg,wparam,lparam;交给默认窗口处理程序处理
ret
.endif
.elseif
(三)右键弹出菜单
.elseif eax==WM_RBUTTONDOWN
invoke getcursorpos,addr @stpos;
invoketrackpopupmenu,hsubmenu,TPM_LEFT,@stops.x,@stops.y,null,hwnd,null;
.elseif eax==wm_close
call _quit
.else
invoke defwindowproc,hwnd,umsg,wparam,lparam;交给默认窗口处理程序处理
ret
.endif
重点与难点:
1、 the GetCursorPos function retrieves the cursor's position, inscreen coordinates.
返回当前光标位置,即鼠标位置是是相对于屏幕的座标。
Syntax
BOOL GetCursorPos(
LPPOINT lpPoint
);
2、 trackpopupmenu
The TrackPopupMenu function displays a shortcut menu at thespecified location and tracks the selection of items on the menu.The shortcut menu can appear anywhere on the screen.
在屏幕的任何指定位置显示一个弹出菜单。
Syntax
BOOL TrackPopupMenu(
HMENU hMenu,
UINT uFlags,
int x,
int y,
int nReserved,
HWND hWnd,
HWND prcRect
);
参数说明
(1) uFlags
TPM_CENTERALIGN
If this flag is set, the function centers the shortcut menuhorizontally relative to the coordinate specified by the xparameter.
TPM_LEFTALIGN
If this flag is set, the function positions the shortcut menu sothat its left side is aligned with the coordinate specified by thex parameter.
TPM_RIGHTALIGN
Positions the shortcut menu so that its right side is aligned withthe coordinate specified by the x parameter.
Use one of the following flags to specify how the functionpositions the shortcut menu vertically.
TPM_BOTTOMALIGN
If this flag is set, the function positions the shortcut menu sothat its bottom side is aligned with the coordinate specified bythe y parameter.
TPM_TOPALIGN
If this flag is set, the function positions the shortcut menu sothat its top side is aligned with the coordinate specified by the yparameter.
TPM_VCENTERALIGN
If this flag is set, the function centers the shortcut menuvertically relative to the coordinate specified by the yparameter.
Use the following flags to determine the user selection withouthaving to set up a parent window for the menu.
以上为菜单显示时的对齐方式相对于x、y参数
TPM_NONOTIFY用户选择菜单项时不发送通知消息
If this flag is set, the function does not send notificationmessages when the user clicks on a menu item.
TPM_RETURNCMD 返回命令ID
If this flag is set, the function returns the menu item identifierof the user's selection in the return value.
Use one of the following flags to specify which mouse button theshortcut menu tracks.
TPM_LEFTBUTTON 左键键选择菜单
If this flag is set, the user can select menu items with only theleft mouse button.
TPM_RIGHTBUTTON 右键选择菜单
If this flag is set, the user can select menu items with both theleft and right mouse buttons.
Windows 98/Me, Windows 2000/XP:Use any reasonable combination ofthe following flags to modify the animation of a menu. For example,by selecting a horizontal and a vertical flag you can achievediagonal animation. 可以用下列参数来展示菜单显示的动态效果
TPM_HORNEGANIMATION
Animates the menu from right to left.
TPM_HORPOSANIMATION
Animates the menu from left to right.
TPM_NOANIMATION
Displays menu without animation.
TPM_VERNEGANIMATION
Animates the menu from bottom to top.
TPM_VERPOSANIMATION
Animates the menu from top to bottom
(2) nReserved
Reserved; must be zero. 必须为null
(3) hWnd 要弹出菜单的句柄
[in] Handle to the window that owns the shortcut menu. This windowreceives all messages from the menu. The window does not receive aWM_COMMAND message from the menu until the function returns. If youspecify TPM_NONOTIFY in the uFlags parameter, the function does notsend messages to the window identified by hWnd. However, you muststill pass a window handle in hWnd. It can be any window handlefrom your application
仅指窗口的弹出菜单类型,在本函数返回后,窗口才会接收到wm_command消息,但POPUP类型的菜单只能在第二层中定义,如文件属于第一层,打开、新建等才属于第二层,所以hdunmrnu参数取得了子菜单句柄,invokegetsubmenu.hnemu,npos
,mov hsubmenu,eax。npos指定要取得的第一层菜单的序号,如第一层有2个菜单项,文件和查看,则文件为0,查看为1。
_procwinmain endp
_winmaing proc
local @stwndclass:wndclassex
local @stmsg:MSG
local @haccelerator
invoke getmodulehandle,null
mov hinstance,eax
invoke loadmenu,hinstance,IDM_MIAN;加载菜单
mov hmenu,eax
invoke loadaccelerators,hinstance,IDA_MAIN;加载加速键
mov @haccelerator,eax
;注册窗口类和建立显示窗口省略
;...............
;...............
;重点:消息循环
.while true
invoke getmessage,addr @stmsg,null,0,0
.break .if eax==0
invoke translateaccelerator,hwinmain,@haccelerator,addr@stmsg
;关于translateaccelerator
;-----------
The TranslateAccelerator function processes accelerator keys formenu commands. The function translates a WM_KEYDOWN orWM_SYSKEYDOWN message to a WM_COMMAND or WM_SYSCOMMAND message (ifthere is an entry for the key in the specified accelerator table)and then sends the WM_COMMAND or WM_SYSCOMMAND message directly tothe appropriate window procedure. TranslateAccelerator does notreturn until the window procedure has processed the message.
对菜单的快键进行预处理,将WM_KEYDOWN或WM_SYSKEYDOWN消息处理成为WM_COMMAND或WM_SYSCOMMAND,并直接将消息送到窗口过程处理,直到窗口过程处理该消息后才返回.
Syntax
int TranslateAccelerator( HWND hWnd,
HACCEL hAccTable,加速键表的资源句柄
LPMSG lpMsg
);
Parameters
hWnd
[in] Handle to the window whose messages are to betranslated.
hAccTable
[in] Handle to the accelerator table. The accelerator table musthave been loaded by a call to the LoadAccelerators function orcreated by a call to the CreateAcceleratorTable function.
lpMsg
[in] Pointer to an MSG structure that contains message informationretrieved from the calling thread's message queue using theGetMessage or PeekMessage function.
[Return Value]
If the function succeeds, the return value isnonzero.执行成功返回非0
If the function fails, the return value is zero.不成功返回0
;-----------
;如果不属于加速键消息或处理失败,则进行标准的处理方案,否则以下不执行,因为该函数直接把
;消息发送到窗口过程,再进行发送
.if eax==0
invoke translatemessage,addr @stmsg
invoke dispatchmessage.addr @stmsg
.endif
.endw
ret
_winmain endp
start:
call _winmain
invoke exitprocess,null
end start
_winmaing proc
local @stwndclass:wndclassex
local @stmsg:MSG
local @haccelerator
invoke getmodulehandle,null
mov hinstance,eax
invoke loadmenu,hinstance,IDM_MIAN;加载菜单
mov hmenu,eax
invoke loadaccelerators,hinstance,IDA_MAIN;加载加速键
mov @haccelerator,eax
;注册窗口类和建立显示窗口省略
;...............
;...............
;重点:消息循环
.while true
invoke getmessage,addr @stmsg,null,0,0
.break .if eax==0
invoke translateaccelerator,hwinmain,@haccelerator,addr@stmsg
;关于translateaccelerator
;-----------
The TranslateAccelerator function processes accelerator keys formenu commands. The function translates a WM_KEYDOWN orWM_SYSKEYDOWN message to a WM_COMMAND or WM_SYSCOMMAND message (ifthere is an entry for the key in the specified accelerator table)and then sends the WM_COMMAND or WM_SYSCOMMAND message directly tothe appropriate window procedure. TranslateAccelerator does notreturn until the window procedure has processed the message.
对菜单的快键进行预处理,将WM_KEYDOWN或WM_SYSKEYDOWN消息处理成为WM_COMMAND或WM_SYSCOMMAND,并直接将消息送到窗口过程处理,直到窗口过程处理该消息后才返回.
Syntax
int TranslateAccelerator( HWND hWnd,
HACCEL hAccTable,加速键表的资源句柄
LPMSG lpMsg
);
Parameters
hWnd
[in] Handle to the window whose messages are to betranslated.
hAccTable
[in] Handle to the accelerator table. The accelerator table musthave been loaded by a call to the LoadAccelerators function orcreated by a call to the CreateAcceleratorTable function.
lpMsg
[in] Pointer to an MSG structure that contains message informationretrieved from the calling thread's message queue using theGetMessage or PeekMessage function.
[Return Value]
If the function succeeds, the return value isnonzero.执行成功返回非0
If the function fails, the return value is zero.不成功返回0
;-----------
;如果不属于加速键消息或处理失败,则进行标准的处理方案,否则以下不执行,因为该函数直接把
;消息发送到窗口过程,再进行发送
.if eax==0
invoke translatemessage,addr @stmsg
invoke dispatchmessage.addr @stmsg
.endif
.endw
ret
_winmain endp
start:
call _winmain
invoke exitprocess,null
end start
BEGIN
菜单项定义
....
END
菜单ID可以是字符型也可以是数值型,数值型ID>10000h,DISCARDABLE表示菜单不再使用的时候暂从内存释放。
MENUITEM 菜单文字,命令ID[,选荐列表]
MENUITEM SEPARATOR分隔条
POPUP 菜单文字[,选项列表]
BEGIN
item-definitions
...
END
顶层菜单
菜单文字:显示在菜单中的字符串。
命令ID:用来分辨不同的菜单项。
选项:用来定义菜单项的各种属性。
CHECKED
GRAYED:灰化
INACTIVE:禁用
MENUBREAK,MENUBARBREAK:此菜单项和以后的菜单项列到新的列中。
.386
.model flat,stdcall
option casemap:none
;---------------
include windows.inc
include user32.inc
include user32.lib
include kernel32.inc
include kernel32.lib
;-----------
ICO_MAIN EQU 1000H;图标
IDM_MAIN EQU 2000H;菜单
IDA_MAIN EQU 2000H;加速键
;-------------下面定义命令ID
IDM_OPEN EQU 4101H
IDM_OPTION EQU 4102H
IDM_EXIT EQU 4103H
......................
IDM_ABOUT EQU 4302H
;--------------------命令ID定义完毕
;------变量
.DATA?
hinstance dd ?
hwinmain dd ?
hmenu dd?
hsubmenu dd ?
;--------常量
.const
szclassname db 'menu example',0
szcaptionmain db 'menu',0
szmenuhellp db '帮助主题(&H)',0
szmenuabout db '关于本程序(&A)....',0
szcaption db '菜单选择',0
szformat db '您选择了菜单命令%08x',0
;---------代码段
.code
_displaymenuitem proc _dwcommandid;显示当前选择的菜单命令
local @szbuffer[256]:byte
pushad
invoke wsprintf,addr @szbuffer,addr szformat,_dwcommandid
;关于wsprintf函数
The wsprintf function formats and stores a series of characters andvalues in a buffer. Any arguments are converted and copied to theoutput buffer according to the corresponding format specificationin the format string. The function appends a terminating nullcharacter to the characters it writes, but the return value doesnot include the terminating null character in its charactercount.
格式化一系列的字符和值在缓冲区内,函数将一个终止的NULL字符插入字符的后面,返回 字符个数,不包括终止符。
语法:
int wsprintf(
LPTSTR lpOut,
LPCTSTR lpFmt,
...
);
lpOut缓冲区
[out] Pointer to a buffer to receive the formatted output. Themaximum size of the buffer is 1024 bytes.
lpFmt
含格式化控制符的字符串
[in] Pointer to a null-terminated string that contains theformat-control specifications. In addition to ordinary ASCIIcharacters, a format specification for each argument appears inthis string. For more information about the format specification,see the Remarks section.
被格化后插入上述字符串中的参数(可以有多个参数,随着上述字符串所含格式化控制符数量而定)
[in] Specifies one or more optional arguments. The number and typeof argument parameters depend on the corresponding format-controlspecifications in the lpFmt parameter.
.model flat,stdcall
option casemap:none
;---------------
include windows.inc
include user32.inc
include user32.lib
include kernel32.inc
include kernel32.lib
;-----------
ICO_MAIN EQU 1000H;图标
IDM_MAIN EQU 2000H;菜单
IDA_MAIN EQU 2000H;加速键
;-------------下面定义命令ID
IDM_OPEN EQU 4101H
IDM_OPTION EQU 4102H
IDM_EXIT EQU 4103H
......................
IDM_ABOUT EQU 4302H
;--------------------命令ID定义完毕
;------变量
.DATA?
hinstance dd ?
hwinmain dd ?
hmenu dd?
hsubmenu dd ?
;--------常量
.const
szclassname db 'menu example',0
szcaptionmain db 'menu',0
szmenuhellp db '帮助主题(&H)',0
szmenuabout db '关于本程序(&A)....',0
szcaption db '菜单选择',0
szformat db '您选择了菜单命令%08x',0
;---------代码段
.code
_displaymenuitem proc _dwcommandid;显示当前选择的菜单命令
local @szbuffer[256]:byte
pushad
invoke wsprintf,addr @szbuffer,addr szformat,_dwcommandid
;关于wsprintf函数
The wsprintf function formats and stores a series of characters andvalues in a buffer. Any arguments are converted and copied to theoutput buffer according to the corresponding format specificationin the format string. The function appends a terminating nullcharacter to the characters it writes, but the return value doesnot include the terminating null character in its charactercount.
格式化一系列的字符和值在缓冲区内,函数将一个终止的NULL字符插入字符的后面,返回 字符个数,不包括终止符。
语法:
int wsprintf(
LPTSTR lpOut,
LPCTSTR lpFmt,
...
);
lpOut缓冲区
[out] Pointer to a buffer to receive the formatted output. Themaximum size of the buffer is 1024 bytes.
lpFmt
含格式化控制符的字符串
[in] Pointer to a null-terminated string that contains theformat-control specifications. In addition to ordinary ASCIIcharacters, a format specification for each argument appears inthis string. For more information about the format specification,see the Remarks section.
被格化后插入上述字符串中的参数(可以有多个参数,随着上述字符串所含格式化控制符数量而定)
[in] Specifies one or more optional arguments. The number and typeof argument parameters depend on the corresponding format-controlspecifications in the lpFmt parameter.
格式化规范如下
A format specification has the following form:
%[-][
[img][width][.precision]type
Field Meaning 以上规范中字段的意义
– Pad the output with blanks or zeros to the right to fill thefield width, justifying output to the left. If this field isomitted, the output is padded to the left, justify填充ing it to theright.
-:输出有左边开始的,用空格或0右填充宽度,如果没有这个则左填充。
[/img]
Prefix hexadecimal values with 0x (lowercase) or 0X(uppercase).
将数字用16进制格式0x或oX前缀
0 Pad the output value with zeros to fill the field width. If thisfield is omitted, the output value is padded with blankspaces.
用0填充宽度,没有这个参数用空格填充
width: Copy the specified minimum number of characters to theoutput buffer. The width field is a nonnegative integer. The widthspecification never causes a value to be truncated; if the numberof characters in the output value is greater than the specifiedwidth, or if the width field is not present, all characters of thevalue are printed, subject to the precision specification.
复制指定最小数量的字符到缓冲区中,但是如字符的实际宽度比指定最小数量还大,或这个参数缺省,所有字符被输出。
.precision :For numbers, copy the specified minimum number ofdigits to the output buffer. If the number of digits in theargument is less than the specified precision, the output value ispadded on the left with zeros. The value is not truncated when thenumber of digits exceeds the specified precision. If the specifiedprecision is 0 or omitted entirely, or if the period (.) appearswithout a number following it, the precision is set to 1.
数字的精确度
复制指定最小位数的数字到缓冲区中,但是如数字的实际位数比指定最小数量还小,用0从左边填充,实际位数超过指定,则值不会被删短,如果说指定为0或这个参数缺省,或这个参数指定时,该参数其小数点没有数字,则精确度为1,对于字符来说是复制最大数量的字符。
type Output the corresponding argument as acharacter, a string, or a number. This field can be any of thefollowing values.
type就是指输出到缓冲区的类型。
Value Meaning
c Single character. This value is interpreted as type WCHAR if thecalling application defines Unicode and as type __wchar_totherwise.
C Single character. This value is interpreted as type __wchar_t ifthe calling application defines Unicode and as type WCHARotherwise.
d Signed decimal integer. This value is equivalent to i.带符号的整数
hc, hC Single character. The wsprintf function ignores characterarguments with a numeric value of zero. This value is alwaysinterpreted as type __wchar_t, even when the calling applicationdefines Unicode.
hd Signed short integer argument.
hs, hS String. This value is always interpreted as typeLPSTR(被指定为lpstr类型), even when the calling application definesUnicode.
hu Unsigned short integer.
i Signed decimal integer. This value is equivalent to d.十进制整数
lc, lC Single character. The wsprintf function ignores characterarguments with a numeric value of zero. This value is alwaysinterpreted as type WCHAR, even when the calling application doesnot define Unicode.
ld Long signed integer. This value is equivalent to li.
li Long signed integer. This value is equivalent to ld.
ls, lS String. This value is always interpreted as typeLPWSTR(被指定为LPWSTR类型), even when the calling application does notdefine Unicode. This value is equivalent to ws.
lu Long unsigned integer.长整型无符号整数
lx, lX Long unsigned hexadecimal integer in lowercase oruppercase.
p Windows 2000/XP: Pointer. The address is printed usinghexadecimal. (16进制的指针类型)
s String. This value is interpreted as type LPWSTR when the callingapplication defines Unicode and as type LPSTR otherwise.
S String. This value is interpreted as type LPSTR when the callingapplication defines Unicode and as type LPWSTR otherwise.
u Unsigned integer argument. 无符号整数
x, X Unsigned hexadecimal integer in lowercase or uppercase.无符号16进制
To use buffers larger than 1024 bytes, use_snwprintf当缓冲区超过1024bytes时用_snwprintf
A format specification has the following form:
%[-][
[img][width][.precision]type
Field Meaning 以上规范中字段的意义
– Pad the output with blanks or zeros to the right to fill thefield width, justifying output to the left. If this field isomitted, the output is padded to the left, justify填充ing it to theright.
-:输出有左边开始的,用空格或0右填充宽度,如果没有这个则左填充。
[/img]
Prefix hexadecimal values with 0x (lowercase) or 0X(uppercase).
将数字用16进制格式0x或oX前缀
0 Pad the output value with zeros to fill the field width. If thisfield is omitted, the output value is padded with blankspaces.
用0填充宽度,没有这个参数用空格填充
width: Copy the specified minimum number of characters to theoutput buffer. The width field is a nonnegative integer. The widthspecification never causes a value to be truncated; if the numberof characters in the output value is greater than the specifiedwidth, or if the width field is not present, all characters of thevalue are printed, subject to the precision specification.
复制指定最小数量的字符到缓冲区中,但是如字符的实际宽度比指定最小数量还大,或这个参数缺省,所有字符被输出。
.precision :For numbers, copy the specified minimum number ofdigits to the output buffer. If the number of digits in theargument is less than the specified precision, the output value ispadded on the left with zeros. The value is not truncated when thenumber of digits exceeds the specified precision. If the specifiedprecision is 0 or omitted entirely, or if the period (.) appearswithout a number following it, the precision is set to 1.
数字的精确度
复制指定最小位数的数字到缓冲区中,但是如数字的实际位数比指定最小数量还小,用0从左边填充,实际位数超过指定,则值不会被删短,如果说指定为0或这个参数缺省,或这个参数指定时,该参数其小数点没有数字,则精确度为1,对于字符来说是复制最大数量的字符。
type Output the corresponding argument as acharacter, a string, or a number. This field can be any of thefollowing values.
type就是指输出到缓冲区的类型。
Value Meaning
c Single character. This value is interpreted as type WCHAR if thecalling application defines Unicode and as type __wchar_totherwise.
C Single character. This value is interpreted as type __wchar_t ifthe calling application defines Unicode and as type WCHARotherwise.
d Signed decimal integer. This value is equivalent to i.带符号的整数
hc, hC Single character. The wsprintf function ignores characterarguments with a numeric value of zero. This value is alwaysinterpreted as type __wchar_t, even when the calling applicationdefines Unicode.
hd Signed short integer argument.
hs, hS String. This value is always interpreted as typeLPSTR(被指定为lpstr类型), even when the calling application definesUnicode.
hu Unsigned short integer.
i Signed decimal integer. This value is equivalent to d.十进制整数
lc, lC Single character. The wsprintf function ignores characterarguments with a numeric value of zero. This value is alwaysinterpreted as type WCHAR, even when the calling application doesnot define Unicode.
ld Long signed integer. This value is equivalent to li.
li Long signed integer. This value is equivalent to ld.
ls, lS String. This value is always interpreted as typeLPWSTR(被指定为LPWSTR类型), even when the calling application does notdefine Unicode. This value is equivalent to ws.
lu Long unsigned integer.长整型无符号整数
lx, lX Long unsigned hexadecimal integer in lowercase oruppercase.
p Windows 2000/XP: Pointer. The address is printed usinghexadecimal. (16进制的指针类型)
s String. This value is interpreted as type LPWSTR when the callingapplication defines Unicode and as type LPSTR otherwise.
S String. This value is interpreted as type LPSTR when the callingapplication defines Unicode and as type LPWSTR otherwise.
u Unsigned integer argument. 无符号整数
x, X Unsigned hexadecimal integer in lowercase or uppercase.无符号16进制
To use buffers larger than 1024 bytes, use_snwprintf当缓冲区超过1024bytes时用_snwprintf
接着1的程序
invoke messagebox,hwinmain,addr @szbuffer,offsetszcaption,MB_OK
popad;将前面保存的寄存器值复原,PUSHAD指令是把32位的通用寄存器全部入栈,入栈顺序为EAX,ECX,EDX,EX,质量保证执行前的ESP、
EBP、ESI、EDI。出栈顺序相反。
ret
_displaymenuitem endp
;退出
_quit proc
invoke destroywindow,hwinmain
invoke postquitmessagfe,null
ret
_quit endp
;窗口过程
_procwinmain proc uses ebx edi esi hwnd,umsg,wparam,lparam
local @stpos:point
local @hsysmenu
mov eax,umsg
.if eax==WM_CREATE
invokegetsubmenu,hmenu,1;得到第2个子菜单的句柄也就是查看,hmenu为总菜单的句柄。总菜单句柄用getmenu得到
mov hsubmenu,eax
;得到系统菜单并在系统菜单上增加自己的菜单即在系统菜单中的还原,移动等下面增加
invoke getsystemmenu,hwnd,false;
;-------------------------
;关于getsystemmenu访问系统菜单或控制菜单
Syntax
HMENU GetSystemMenu(
HWND hWnd,
BOOL bRevert
);
如果bRevert为true则将窗口菜单重置到缺省标准状态,以前的菜单销毁,返回NULL;为FALSE,则返回系统菜单拷贝的句柄。
这里的菜单项发送wm_syscommand消息。
;----------
mov @hsysmenu,eax
invoke appendmenu,@hsysmenu,MF_SPARATOR,0,NULL;在系统菜单里增加分隔符
invoke appendmenu,@hsysmenu,0,IDM_HELP,offsetszmenuhelp;增加‘帮助主题’菜单项
invoke appendmenu,@hsysmenu,0,IDM_ABOUT,offsetszmenuabout;增加‘关于本程序’菜单项
;----------
;关于appendmenu
;----------msdn
The AppendMenu function appends a new item to the end of thespecified menu bar, drop-down menu, submenu, or shortcut menu. Youcan use this function to specify the content, appearance, andbehavior of the menu item.
Syntax
BOOL AppendMenu(
HMENU hMenu,
UINT uFlags,
UINT_PTR uIDNewItem,
LPCTSTR lpNewItem
);
Parameters
hMenu
[in] Handle to the menu bar, drop-down menu, submenu, or shortcutmenu to be changed.
=================================================
uFlags
[in] Specifies flags to control the appearance and behavior of thenew menu item. This parameter can be a combination of the valueslisted in the following
Value Description
MF_BITMAP Uses a bitmap as the menu item. The lpNewItem parametercontains a handle to the bitmap.
MF_CHECKED Places a check mark next to the menu item. If theapplication provides check-mark bitmaps (see SetMenuItemBitmaps,this flag displays the check-mark bitmap next to the menuitem.
MF_DISABLED Disables the menu item so that it cannot be selected,but the flag does not gray it.
MF_ENABLED Enables the menu item so that it can be selected, andrestores it from its grayed state.
MF_GRAYED Disables the menu item and grays it so that it cannot beselected.
MF_MENUBARBREAK Functions the same as the MF_MENUBREAK flag for amenu bar. For a drop-down menu, submenu, or shortcut menu, the newcolumn is separated from the old column by a vertical line.
MF_MENUBREAK Places the item on a new line (for a menu bar) or in anew column (for a drop-down menu, submenu, or shortcut menu)without separating columns.
MF_OWNERDRAW Specifies that the item is an owner-drawn item. Beforethe menu is displayed for the first time, the window that owns themenu receives a WM_MEASUREITEM message to retrieve the width andheight of the menu item. The WM_DRAWITEM message is then sent tothe window procedure of the owner window whenever the appearance ofthe menu item must be updated.
MF_POPUP Specifies that the menu item opens a drop-down menu orsubmenu. The uIDNewItem parameter specifies a handle to thedrop-down menu or submenu. This flag is used to add a menu name toa menu bar, or a menu item that opens a submenu to a drop-downmenu, submenu, or shortcut menu.
MF_SEPARATOR Draws a horizontal dividing line. This flag is usedonly in a drop-down menu, submenu, or shortcut menu. The linecannot be grayed, disabled, or highlighted. The lpNewItem anduIDNewItem parameters are ignored.
MF_STRING Specifies that the menu item is a text string; thelpNewItem parameter is a pointer to the string.
MF_UNCHECKED Does not place a check mark next to the item(default). If the application supplies check-mark bitmaps (seeSetMenuItemBitmaps), this flag displays the clear bitmap next tothe menu item.
The following groups of flags cannot be used together:
MF_BITMAP, MF_STRING, and MF_OWNERDRAW
MF_CHECKED and MF_UNCHECKED
MF_DISABLED, MF_ENABLED, and MF_GRAYED
MF_MENUBARBREAK and MF_MENUBREAK
===========================
uIDNewItem
[in] Specifies either the identifier of the new menu item or, ifthe uFlags parameter is set to MF_POPUP, a handle to the drop-downmenu or submenu.
lpNewItem
[in] Specifies the content of the new menu item. The interpretationof lpNewItem depends on whether the uFlags parameter includes theMF_BITMAP, MF_OWNERDRAW, or MF_STRING flag, as shown in thefollowing table.
MF_BITMAP
Contains a bitmap handle.
MF_OWNERDRAW
Contains an application-supplied value that can be used to maintainadditional data related to the menu item. The value is in theitemData member of the structure pointed to by the lParam parameterof the WM_MEASUREITEM or WM_DRAWITEM message sent when the menu iscreated or its appearance is updated.
MF_STRING
Contains a pointer to a null-terminated string.
Return Value
If the function succeeds, the return value is nonzero. If thefunction fails, the return value is zero. To get extended errorinformation, call GetLastError.
;------------
invoke messagebox,hwinmain,addr @szbuffer,offsetszcaption,MB_OK
popad;将前面保存的寄存器值复原,PUSHAD指令是把32位的通用寄存器全部入栈,入栈顺序为EAX,ECX,EDX,EX,质量保证执行前的ESP、
EBP、ESI、EDI。出栈顺序相反。
ret
_displaymenuitem endp
;退出
_quit proc
invoke destroywindow,hwinmain
invoke postquitmessagfe,null
ret
_quit endp
;窗口过程
_procwinmain proc uses ebx edi esi hwnd,umsg,wparam,lparam
local @stpos:point
local @hsysmenu
mov eax,umsg
.if eax==WM_CREATE
invokegetsubmenu,hmenu,1;得到第2个子菜单的句柄也就是查看,hmenu为总菜单的句柄。总菜单句柄用getmenu得到
mov hsubmenu,eax
;得到系统菜单并在系统菜单上增加自己的菜单即在系统菜单中的还原,移动等下面增加
invoke getsystemmenu,hwnd,false;
;-------------------------
;关于getsystemmenu访问系统菜单或控制菜单
Syntax
HMENU GetSystemMenu(
HWND hWnd,
BOOL bRevert
);
如果bRevert为true则将窗口菜单重置到缺省标准状态,以前的菜单销毁,返回NULL;为FALSE,则返回系统菜单拷贝的句柄。
这里的菜单项发送wm_syscommand消息。
;----------
mov @hsysmenu,eax
invoke appendmenu,@hsysmenu,MF_SPARATOR,0,NULL;在系统菜单里增加分隔符
invoke appendmenu,@hsysmenu,0,IDM_HELP,offsetszmenuhelp;增加‘帮助主题’菜单项
invoke appendmenu,@hsysmenu,0,IDM_ABOUT,offsetszmenuabout;增加‘关于本程序’菜单项
;----------
;关于appendmenu
;----------msdn
The AppendMenu function appends a new item to the end of thespecified menu bar, drop-down menu, submenu, or shortcut menu. Youcan use this function to specify the content, appearance, andbehavior of the menu item.
Syntax
BOOL AppendMenu(
HMENU hMenu,
UINT uFlags,
UINT_PTR uIDNewItem,
LPCTSTR lpNewItem
);
Parameters
hMenu
[in] Handle to the menu bar, drop-down menu, submenu, or shortcutmenu to be changed.
=================================================
uFlags
[in] Specifies flags to control the appearance and behavior of thenew menu item. This parameter can be a combination of the valueslisted in the following
Value Description
MF_BITMAP Uses a bitmap as the menu item. The lpNewItem parametercontains a handle to the bitmap.
MF_CHECKED Places a check mark next to the menu item. If theapplication provides check-mark bitmaps (see SetMenuItemBitmaps,this flag displays the check-mark bitmap next to the menuitem.
MF_DISABLED Disables the menu item so that it cannot be selected,but the flag does not gray it.
MF_ENABLED Enables the menu item so that it can be selected, andrestores it from its grayed state.
MF_GRAYED Disables the menu item and grays it so that it cannot beselected.
MF_MENUBARBREAK Functions the same as the MF_MENUBREAK flag for amenu bar. For a drop-down menu, submenu, or shortcut menu, the newcolumn is separated from the old column by a vertical line.
MF_MENUBREAK Places the item on a new line (for a menu bar) or in anew column (for a drop-down menu, submenu, or shortcut menu)without separating columns.
MF_OWNERDRAW Specifies that the item is an owner-drawn item. Beforethe menu is displayed for the first time, the window that owns themenu receives a WM_MEASUREITEM message to retrieve the width andheight of the menu item. The WM_DRAWITEM message is then sent tothe window procedure of the owner window whenever the appearance ofthe menu item must be updated.
MF_POPUP Specifies that the menu item opens a drop-down menu orsubmenu. The uIDNewItem parameter specifies a handle to thedrop-down menu or submenu. This flag is used to add a menu name toa menu bar, or a menu item that opens a submenu to a drop-downmenu, submenu, or shortcut menu.
MF_SEPARATOR Draws a horizontal dividing line. This flag is usedonly in a drop-down menu, submenu, or shortcut menu. The linecannot be grayed, disabled, or highlighted. The lpNewItem anduIDNewItem parameters are ignored.
MF_STRING Specifies that the menu item is a text string; thelpNewItem parameter is a pointer to the string.
MF_UNCHECKED Does not place a check mark next to the item(default). If the application supplies check-mark bitmaps (seeSetMenuItemBitmaps), this flag displays the clear bitmap next tothe menu item.
The following groups of flags cannot be used together:
MF_BITMAP, MF_STRING, and MF_OWNERDRAW
MF_CHECKED and MF_UNCHECKED
MF_DISABLED, MF_ENABLED, and MF_GRAYED
MF_MENUBARBREAK and MF_MENUBREAK
===========================
uIDNewItem
[in] Specifies either the identifier of the new menu item or, ifthe uFlags parameter is set to MF_POPUP, a handle to the drop-downmenu or submenu.
lpNewItem
[in] Specifies the content of the new menu item. The interpretationof lpNewItem depends on whether the uFlags parameter includes theMF_BITMAP, MF_OWNERDRAW, or MF_STRING flag, as shown in thefollowing table.
MF_BITMAP
Contains a bitmap handle.
MF_OWNERDRAW
Contains an application-supplied value that can be used to maintainadditional data related to the menu item. The value is in theitemData member of the structure pointed to by the lParam parameterof the WM_MEASUREITEM or WM_DRAWITEM message sent when the menu iscreated or its appearance is updated.
MF_STRING
Contains a pointer to a null-terminated string.
Return Value
If the function succeeds, the return value is nonzero. If thefunction fails, the return value is zero. To get extended errorinformation, call GetLastError.
;------------
发表评论
-
win下开发跨平台GUI程序的另类选择
2011-05-03 17:21 2232GTK+ ● GTK+的网站:www.gtk. ... -
win32汇编-送消息给其它应用程序
2010-02-20 16:42 29212个函数invoke postmessage,hwnd,msg ... -
WIN32汇编学习应用之defwindowproc
2010-02-20 16:36 2749defwindowproc窗口过程对一些消息的默认处理方式WM ... -
windows中WM_CLOSE消息和WM_DESTORY消息的不同之处
2010-02-20 16:33 24411、WM_CLOSE仅代表用户发出了关闭的指令,但窗口过程可以 ... -
WIN32汇编获取应用程序句柄
2010-02-20 16:32 2226getmodulehandle使用方法invoke getm ... -
WIN32汇编语言学习应用之消息获取
2010-02-20 16:31 1740MSG结构:MSG STURCTHwnd DWORD ?Mes ... -
一个WIN32汇编的完整窗口入门程序的理解与注释
2010-02-20 16:28 3746;WIN32汇编的注释是;,其实WIN32汇编和VC有很多 ... -
汇编中通用寄存器的目的
2010-02-20 16:24 22131、EAX和AX:累加器,所有的I/O指令用它来与外部设备 ... -
汇编几个段
2010-02-17 16:39 4229反汇编后几个段的含义 预定义段 一个WindowsNT ... -
WIN32汇编语言解析
2010-02-17 16:36 2577win32汇编中的sizeof win32汇编中的s ... -
设置与获取窗口标题文本
2010-02-17 16:32 2027获得: CString xx=""; ... -
win32汇编快速入门
2010-02-17 16:31 4676汇编可以开发WINDOWS程序 ... -
WIN32汇编-HELLO,WORLD!
2010-02-17 16:29 4459我们用WIN32汇编构建 ... -
保护模式下段寄存器的作用
2010-02-17 14:39 32971、保护模式一,虽然在寻址上没有分段的限制问题,但对要对一个地 ... -
WIN32汇编-反汇编
2010-02-17 14:33 2806学好WIN32汇编,平时需 ... -
玩转菜单-菜单资源
2010-02-08 17:31 1955菜单资源 WINDOWS程序的菜单通常编译前定义在资 ... -
二进制资源和自定义资源使用定义
2010-02-08 17:29 22081、二进制资源 (1)定义格式: 资源IDRCDA ... -
LISTBOX和LIST CONTROL的项目增加方法
2010-02-08 17:28 54711、LIST CONTROL(report方式): (1)类 ... -
取IP寄存器的当前值
2010-02-08 17:27 1964call $+3 POP CX 把IP寄存器的当前值放 ... -
ret/retn人为改变执行地址
2010-02-08 17:27 28611、CALL和RET/RETN是一对指令,CALL把返回 ...
相关推荐
本文将详细探讨"WIN32汇编程序源码级调试_VS2019"这一主题,包括如何在Visual Studio 2019(VS2019)环境下编写和调试Win32汇编程序,以及如何实现一个学生管理系统。 首先,让我们了解Win32汇编。Win32汇编是针对...
本压缩包包含了一个全面的Win32汇编程序实例,涵盖了多个关键主题,如进程控制、多线程、线程同步、定时器、菜单、快捷键、通用控件、子类化和超类化。 1. **进程控制**:进程是操作系统中正在运行的程序实例。在...
Win32汇编语言是计算机科学的一个重要领域,它是一种低级编程语言,直接与Windows操作系统接口进行交互。在深入探讨之前,让我们先明确一点:Win32汇编并不是一个独立的语言,而是指使用Intel x86架构上的汇编语言来...
Iczelion的Win32汇编教程,传说中的经典win32汇编教程
【Win32汇编语言教程】是一篇针对深入学习Win32平台汇编语言编程的指导性文章。在计算机编程领域,尽管C语言是开发Win32应用程序的常见选择,但在特定情况下,如系统底层操作、性能优化或病毒分析等,汇编语言显得...
win32汇编教程。汇编基础。 本帮助文件由yyc个人整理后出版,内容全摘自网络。版权归实际作者所有。 为了让网友们能更好的学习Win32汇编编程,于是我为大家将网上的资料整理成一个帮助文件。 本帮助文件包括:...
WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编
在Windows 32位环境下,汇编语言被称为Win32汇编,主要用于编写系统级程序、驱动程序或者对性能有严格要求的代码。本教程将深入探讨Win32汇编工具及其打包过程,通过示例来帮助理解如何在Windows平台上有效地使用...
《Win32汇编教程》是由知名编程作者iczelion编写的一部深入解析Win32汇编语言的经典教程。汇编语言是计算机科学的基础,它直接对应于机器指令,是程序设计者与硬件进行沟通的桥梁。对于理解操作系统底层工作原理、...
《Win32汇编计算器详解》 在计算机科学领域,汇编语言是一种低级编程语言,它与机器语言紧密相连,直接对应于计算机硬件的指令集。本篇将深入探讨如何使用汇编语言编写一个Win32计算器,该计算器虽然不处理运算...
《Win32汇编教程合集》是一份包含大量关于Win32汇编语言学习资料的压缩包。这个集合不仅适合初学者,也适合有一定基础的程序员深入学习和提升。其中涉及了诸多知名的作者和教育机构的教学内容,如Iczelion、罗云彬...
### Win32汇编语言基础概念 #### 一、Win32编程简介 在深入了解Win32汇编视频教程之前,我们首先需要了解Win32编程的基本概念。Win32是一套由微软提供的应用程序编程接口(API),它主要用于编写Windows操作系统下...
《罗云彬win32汇编教程》是一本专注于Windows平台下汇编语言编程的经典教材。作者罗云彬以其深入浅出的讲解风格,为读者揭示了Win32汇编语言的魅力与精髓。这本书旨在帮助读者理解计算机底层运作机制,掌握在Windows...
Win32汇编源码是计算机编程领域中的一个重要分支,主要关注的是在Windows操作系统环境下,用汇编语言编写程序的方法。汇编语言是一种低级语言,它的指令与计算机硬件的机器语言非常接近,使得程序员可以直接控制...
Win32汇编编程系列 声明: 本帮助文件由yyc个人整理后出版,内容全摘自网络。版权归实际作者所有。 为了让网友们能更好的学习Win32汇编编程,于是我为大家将网上的资料整理成一个帮助文件。 本帮助文件包括:...
本篇将详述如何利用win32汇编语言设计并实现一个功能丰富的虚拟钢琴,包括其音色模拟、实时按键响应以及多键支持等关键技术。 首先,我们要理解win32汇编语言。它是Windows操作系统环境下的一种汇编语言,主要处理...
《从Dos到Win32汇编》是一本深入探讨计算机底层技术的书籍,主要涵盖了从传统的DOS操作系统到现代的Windows 32位系统下的汇编语言编程知识。这本书的目标是帮助读者理解从简单的DOS环境到复杂Windows环境下的程序...
### 罗云彬的Win32汇编教程——深入解析32位环境与Win32汇编 #### 一、32位环境简介及差异对比 在深入了解罗云彬的Win32汇编教程之前,我们首先要明确的是,32位环境与早期的DOS环境在操作系统权限、内存管理以及...
《WIN32汇编程序设计详尽教程》是一本针对Windows环境下的32位汇编语言编程的专业教程。与传统的DOS编程不同,Win32汇编语言利用了Windows操作系统提供的API(应用程序接口)来实现功能,使得程序设计更为复杂且功能...
"WIN32汇编用WINIO模拟键盘"的主题涉及了几个关键知识点,包括WIN32汇编语言、驱动程序编程、键盘模拟以及WINIO库的使用。 首先,**WIN32汇编语言**是Windows操作系统平台上的一种低级编程语言,它允许程序员直接...