社区
汇编语言
帖子详情
请问Win32汇编中怎样定义处理自己定义消息?
aroky_zxc
2006-05-21 09:21:40
VC定义得消息:
MyMessage = WM_USER+100怎样在汇编下定义,WM_USER能直接用嘛?
而且在汇编中怎样捕获这消息?
是不是在WndProc中也像其他一样
.if uMsg ==MyMessage
invoke MyMessageProc
...全文
186
19
打赏
收藏
请问Win32汇编中怎样定义处理自己定义消息?
VC定义得消息: MyMessage = WM_USER+100怎样在汇编下定义,WM_USER能直接用嘛? 而且在汇编中怎样捕获这消息? 是不是在WndProc中也像其他一样 .if uMsg ==MyMessage invoke MyMessageProc
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aroky_zxc
2006-05-23
打赏
举报
回复
已经在WM_COMMAND 平行的处理上进行 uMsg == WM_INT
但是得不到结果,执行断点并不能执行倒uMsg == WM_INT这个语句,就是没法捕捉到改WM_INT消息
zara
2006-05-23
打赏
举报
回复
看上面的代码, 你这个是在个对话框中的 WM_COMMAND 的处理中的吧? 如果 WM_INT 是发到给对话框的话, 就是和 WM_COMMAND 平行的处理上, 就象是:
...
elseif uMsg == WM_COMMAND
....
elseif uMsg == WM_INT
...
else
invoke DefDlgProc, ....
...
可以在调试程序中, 在对话框例程的开始设个条件断点, 当 uMsg 为 WM_INT 中断, 这样看下执行流程是否是预想的. 有问题的话, 再根据具体问题解决.
aroky_zxc
2006-05-23
打赏
举报
回复
.if ax == ID_START_BUTTON;
shr eax,16
.if ax == BN_CLICKED;点击"start"button
invoke pcicard_intopen,hInstance,WM_INT ;打开实验板,函数是DLL提供的
;具体引起WM_INT是点击实验板的按钮,消息更改是在DLL函数中体现的,。asm中不能看出
.if eax ==NULL
invoke MessageBox,NULL ,addr PcicardIntNotOpen,addr AppName,MB_OK
.endif
.endif
.endif
响应消息WM_INT的处理函数
OnIntMessage proc hWin:DWORD
inc Count
invoke SetDlgItemInt, hWin ,ID_EDIT,testint,FALSE
;更新编辑框
OnIntMessage endp
现在不知道怎么捕获WM_INT
zara
2006-05-23
打赏
举报
回复
可以说下你具体的使用自定义消息的场合, 要不给些相关的代码?
aroky_zxc
2006-05-23
打赏
举报
回复
zara能不能说的再清楚一点,我不太理解。
zara
2006-05-23
打赏
举报
回复
不客气的, QQ: 25484385 (zara)
aroky_zxc
2006-05-23
打赏
举报
回复
大侠有没有man或者qq之类的,留个通讯方式,感谢大侠一直的帮助
aroky_zxc
2006-05-23
打赏
举报
回复
我就用ml 。。link。。。命令生成具有调试信息的程序,然后在VC下打开,但是不论在哪设置断点都没用。用的createwindow的函数,而且我觉得你上面写的与WM_COMMAND平行处理应该是很正确的。这个程序有VC的版本而且能够运行的很好,但是改成WIN32汇编后就运行不起来。
zara
2006-05-23
打赏
举报
回复
用的什么调试程序, 怎么会不起作用呢? 如果是 CreateWindow 或 CreateDialog 类函数创建的窗口, 自己有消息循环 GetMessage 的; 如果是 DialogBox 类函数, 消息循环是系统内部的, 用户程序一般不好干预. 我觉得还是想想问题最可能出在哪里, 设置断点进行检查
zara
2006-05-23
打赏
举报
回复
首先要确定窗口处理例程对应于正确的窗口; 其次, 那个窗口确实是发出了这样的义消息
aroky_zxc
2006-05-23
打赏
举报
回复
调试程序的时候在任何地方加入断点都说没用,程序从开始运行,而且还运行不到自己想 要的断点
zara
2006-05-23
打赏
举报
回复
不需要另外添加语句吧, 就在 .dll 中的那个 PostMessage 上加个断点, 看看发送到的窗口句柄和消息号是否是你的那个对话框的窗口句柄和 WM_INT 就可以了
aroky_zxc
2006-05-23
打赏
举报
回复
zara,我想用GetMessage,或者PeekMessage函数来捕捉该WM_INT,查看了DLL中的触发消息是用的PostMessage函数。但是不知道把这个捕捉函数加在程序的哪个地方?
zara
2006-05-23
打赏
举报
回复
那就是并没有消息发过来. 可以在发消息的 .dll 文件的相关指令上设断点, 看看发送的目标窗口和消息号, 是否和这边的一致
aroky_zxc
2006-05-22
打赏
举报
回复
发现这样在WndProc中.if uMsg ==MyMessage 得到捕获消息不行啊?有没有其它办法?
aroky_zxc
2006-05-22
打赏
举报
回复
谢谢zara.
zara
2006-05-22
打赏
举报
回复
就是你在顶楼中的方法, 在其窗口例程中截获消息然后调用相应的处理代码
aroky_zxc
2006-05-21
打赏
举报
回复
忘问了,怎么把MyMessage和MyMessagProc挂钩起来
zara
2006-05-21
打赏
举报
回复
WM_USER 可以直接使用的. 只要在程序前面, 或者是在其包含文件 .inc 中, 定义下就可以象内置消息一样处理使用自定义消息了: MyMessage = WM_USER+100
win32
数组排序
汇编
代码
win32
下用VS10
中
masm编译跑通
win32
汇编
语言教程
1:
Win32
汇编
编程 2:ODBC教程 3:VXD教程 4:串口编程 5:各种硬件接口规范、
定义
x86_32&64
汇编
语言基础视频教程
本套视频教程主要讲x86_32与x86_64
汇编
语言基础,从零开始主要对照c高级语言进行讲解,讲了寄存器的使用、数据类型、变量声名与调用、函数调用约定、栈等新手难以理解的知识,因些本套教程非常适合x86
汇编
语言入门...
tcp聊天室例子-
win32
汇编
版
罗云彬书上例子,教你
定义
数据包结构,链路检测
Unicode_
汇编
unicode_
win32
汇编
使用
定义
unicode变量及数据
汇编语言
21,458
社区成员
41,603
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章