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

138 篇文章 0 订阅
21 篇文章 0 订阅

  用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改成另外一个值就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫郢剑侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值