MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障

简介: MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障

用MASM32写了一个小程序F,程序在运行时会调用MessageBox()弹出一系列对话框。这个程序在Windows 7,10下运行正常,但在Win XP下运行时只能听到对话框弹出的声音,对话框却没显示,这种只闻其声不见其形的故障以前也从未遇到过,程序运行时无声无形的情况倒是遇到过几次,但都是出现在使用自定义窗口的程序上,其原因是资源文件中的自定义窗口信息ID与程序中调用ID值不一致,从而导致窗口没能创建出来。

 小程序虽然没有使用自定义窗口,但仍然使用了资源文件rsrc.rc,定义了文件版本信息等内容,难道又是资源文件作怪?

 把资源文件rsrc.res删除,重新编译连接再运行,对话框应声而出。果然又是资源文件作怪。

 检查资源文件rsrc.rc,找到了问题的根源:

1 VERSIONINFO
FILEVERSION 0, 0, 0, 1
PRODUCTVERSION 0, 0, 0, 1
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
{
    BLOCK "StringFileInfo"
    {
        BLOCK "080404b0"
        {
            VALUE "CompanyName", "PurpleEndurer | 紫郢剑侠㊣ \000"
           
        }
    }
    BLOCK "VarFileInfo"
    {
        VALUE "Translation", 2052, 1200
    }
}
1 24 DISCARDABLE "XPStyle.xml"


VERSIONINFO和XPStyle.xml的ID重复了,而在Windows XP中,XPStyle.xml规定了程序界面显示,所以引发了这个奇怪的故障。

把XPStyle.xml的ID改成另外一个值就行了。


目录
打赏
0
1
1
0
57
分享
相关文章
|
3天前
|
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
23 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
139 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
96 13
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
68 12
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
4月前
|
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
112 0
43、Windows驱动程序模型笔记(一)
1、通常,驱动程序在某些不可预测线程的上下文中应该使用异步方式处理I/O请求。我们使用术语任意线程上下文(arbitrary thread context)来描述驱动程序并不知道(或并不关心)处理器当前执行在哪一个线程上的上下文。
859 0
44、Windows驱动程序模型笔记(二)
图示 原图2-13 DRIVER_OBJECT数据结构     I/O管理器使用驱动程序对象来代表每个设备驱动程序,见图2-13。就象我们将要讨论的许多数据结构一样,驱动程序对象是部分不透明的。这意味着虽然 DDK头中公开了整个结构,但我们仅能直接访问或修改结构中的某些域。
914 0
45、Windows驱动程序模型笔记(三)
4、DriverUnload例程     在WDM驱动程序中,DriverUnload例程的作用就是释放DriverEntry例程在全局初始化过程中申请的任何资源,但它几乎没什么可做。如果你在DriverEntry中备份了RegistryPath串,应该在这里释放备份所占用的内存。
1043 0
46、Windows驱动程序模型笔记(四),异常
1、Summary of Kernel-Mode Support Routines http://msdn.microsoft.com/en-us/library/ff563889%28VS.85%29.aspx 决不在内核模式服务函数的参数中使用带有侧效的表达式。
789 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等