本文主要是介绍C#程序在Windows8下能运行而在XP下双击无反应的一次遭遇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现象:
使用C#开发了一个小的WinForm程序,在Windows8系统上运行正常,在XP上却无法运行,双击程序图标,没有任何反应。
调试限制条件:
由于XP上不能安装开发环境,所以不能在XP上进行源码级别调试。
分析步骤:
(1)项目属性设置CPU为x86(默认是Any),这样程序在XP上运行时,就会报异常错误提示窗口,内容是 对象引用为空。有反应总比不声不响的死去好,问题是那个对象引用为空?为什么Win8下不报错呢?
(2)逐行注释源代码排查,无果。
(3)查找所有对象引用使用情况,发现在窗口大小改变事件响应方法中有一个对象引用使用前没有判断是否为null。为验证,在Win8下运行程序,正常启动后,调整窗口大小,果然报错。
结论:
在Windows8平台上,应用程序初始化显示窗口时,不会产生“大小改变”事件,而在Windows XP平台上则会产生。无论如何,对象引用使用之前一定要判断是否为空!
这篇关于C#程序在Windows8下能运行而在XP下双击无反应的一次遭遇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!