MASM32编程更新SysInfo,运行时程序窗口玩失踪

简介: MASM32编程更新SysInfo,运行时程序窗口玩失踪

最近在更新用MASM32编写系统信息采集程序sysInfo,调试时突然发现程序运行时sysInfo窗口不显示了。

以前也遇到过这种情况,当时排查发现是资源ID冲突造成的。

先检查资源ID,发现没有问题。

检查修改过的代码,发现调用CreateWindowsEx函数的代码中,传递给dwExStyle参数的值是WS_OVERLAPPEDWINDOW。

 
c_MainWinStyle   equ WS_OVERLAPPEDWINDOW

INVOKE CreateWindowEx, c_MainWinStyle, ADDR g_szClassName,ADDR g_szAppInfo,\
           WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,500,400,NULL,NULL, hInst,NULL

WS_OVERLAPPEDWINDOW可以传递给 dwStyle参数,但把它传递给wExStyle参数是否引发了这个问题呢?

修改c_MainWinStyle的值为NULL

c_MainWinStyle   equ NULL

编译连接运行,sysInfo窗口终于显示出来了。

这类bug比较承隐蔽,用调试程序也不容易发现,因此记下来,如果大家在使用MASM32编程时也遇到这种程序窗口不显示的故障,不妨检查一下调用CreateWindowsEx函数的代码是否正确传递了参数。

相关文章
|
6月前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
601 0
关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
利用OllyDbg对程序内容进行修改实验
利用OllyDbg对程序内容进行修改实验
|
网络安全 数据安全/隐私保护 Windows
[笔记] Windows VBS脚本实现自动输入 解放双手 自动测试
[笔记] Windows VBS脚本实现自动输入 解放双手 自动测试
310 0
|
Windows
太阳当空照-Windows服务化方式NSSM指令清单(上)
太阳当空照-Windows服务化方式NSSM指令清单
219 0
|
监控 Windows
太阳当空照-Windows服务化方式NSSM指令清单(下)
太阳当空照-Windows服务化方式NSSM指令清单(下)
291 0
|
数据可视化 C++ Windows
非可视化编程的windows窗口 C++ 代码设计:附例程并多多知识点
非可视化编程的windows窗口 C++ 代码设计:附例程并多多知识点
237 0
监视文件状态-Qt有绝招
监视文件状态-Qt有绝招
解决Revit开发程序运行时,按ESC退出报错问题
解决Revit开发程序运行时,按ESC退出报错问题