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


相关文章
|
11月前
|
数据可视化 前端开发 Java
为什么说Windows这么强大呢?— 原来是因为图形化界面
为什么说Windows这么强大呢?— 原来是因为图形化界面
114 0
|
Windows
windows双开程序代码脚本
windows双开程序代码脚本
110 0
|
网络协议 Windows
工作中会遇到的一些 Windows 常见命令
由于工作当中会接触 Windows ,这篇内容则是我的一个学习笔记
|
存储 编译器 Linux
每日一题——在windows x86/64 VS环境下,下面的程序会出现什么问题?运行结果是什么?为什么?
哈喽大家好,我是保护小周ღ,本期为大家带来的是博主在学习过程中遇到的一道笔试题,题目不难,但是有点复杂),涉及到局部变量在内存中存储的这一方面知识,还是值得学习一下的,欢迎留言啊~
126 0
真正解决办法:WINDOWS7/WIN7提示错误:无法启动此程序,因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问题
真正解决办法:WINDOWS7/WIN7提示错误:无法启动此程序,因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问题
818 0
真正解决办法:WINDOWS7/WIN7提示错误:无法启动此程序,因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问题
|
Windows Python
Windows:直接使用命令运行一个程序
Windows:直接使用命令运行一个程序
773 0
Windows:直接使用命令运行一个程序
|
Windows
Windows 技术篇-最新win10系统下查看热键被哪个程序占用,windows10系统查看占用快捷键的所有程序
Windows 技术篇-最新win10系统下查看热键被哪个程序占用,windows10系统查看占用快捷键的所有程序
841 0
Windows 技术篇-最新win10系统下查看热键被哪个程序占用,windows10系统查看占用快捷键的所有程序