鱼C论坛

 找回密码
 立即注册
查看: 2112|回复: 7

[已解决]MessageBox

[复制链接]
发表于 2023-10-22 20:12:30 | 显示全部楼层
问题的原因是在代码中,eax的值被设置为2,而在MessageBox调用之前,没有设置MessageBox的第一个参数hWnd(窗口句柄)。MessageBox函数需要一个有效的窗口句柄作为第一个参数,以确定消息框的父窗口。由于没有提供有效的窗口句柄,所以没有弹出对话框。

要解决这个问题,可以通过以下几种方式之一来提供有效的窗口句柄:

1. 使用一个有效的窗口句柄作为MessageBox的第一个参数。例如,可以使用GetActiveWindow函数来获取当前活动窗口的句柄,并将其作为第一个参数传递给MessageBox函数。

2. 创建一个新的窗口,并将其句柄作为MessageBox的第一个参数。可以使用CreateWindowEx函数来创建一个新的窗口,并将其句柄作为第一个参数传递给MessageBox函数。

以下是第一种方法的示例代码:

  1. start:
  2.     invoke GetActiveWindow
  3.     mov ebx, eax
  4.     invoke MessageBox, ebx, NULL, NULL, MB_OK
复制代码


在这个示例中,使用GetActiveWindow函数获取当前活动窗口的句柄,并将其保存在ebx寄存器中。然后,将ebx作为MessageBox的第一个参数传递给函数。

使用这种方法,当双击1.exe文件时,应该会弹出一个消息框。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-21 02:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表