Win2000 Pro与Server的区别

2023-10-28 08:32
文章标签 区别 server pro win2000

本文主要是介绍Win2000 Pro与Server的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Win2k Pro与Server的区别

作者: 袁怀善

最近编程越到一个怪事,同一个程序运行在windows2000 server级的操作系统上一点问题没有,而运行在window 2000 professional上就会出现异常.而且一旦出现异常,就会使cpu的占有率高达100%,程序跟踪结果结论为:堆栈溢出(stack overflow).windows 2000系列的OS不是一个NT内核吗,可是书中许多资料都没严格在windows 2000系列产品中区分版式本,而一般只是和98或者XP区分.由于程序中大大小小开了四个线程,加上主线程一共五个,访问串口需要一定的线程同步,一开始我以为是我处理线程对象同步上有失误,但是检查一下代码,没问题呀,找不出什么原因.结果又测试了一翻,结果功夫不负有心人,我发现出现错误是由于鼠标点击菜单引起的,这使我想到原来我使用的一个类CBitmapMenu这个类是我从书中的实例中摘录的,后来觉得这个类很好,就拿来用了.会不会是这个类的问题,我马上修改代码一试….果然不错,就是CBitmapMenu的问题,CBitmap是一个菜单自画类(owner Draw)可以自动读取工具栏图标从而更新菜单项左边的的小图标.
由以上事件得出以下结论:
1 CBitmapMenu类存在问题(也可能是使用不当,但是为什么windows 2K server/xp下正常呢?);在使用别人或者自己写的类时,一定要在各个操作系统版本上进行严格的测试.为了测试方便,建议开发时使用客户用得最多的操作系统比如98/windows 2000 pro/xp,一般用户不会用server级的操作系统.
2.尽管出现此问题可能是一个编程错误,但是我还是下一个结论:windows 2000 各个版本出于性能的考虑,程式默认的参数一定会有一些不同,比如说线程堆栈(这一点我现在还没证实).
3.为了让程序有较大的兼容性,建议不要使用有版本限制的函数库或者类库(比如换肤库),另外,程序运行的稳定性永远是第一位的,漂亮的界面才是其次,因此,一定要在保证前者的基础上,才能谈其他的.
4.开发人员不要随意加入自己觉得有特色(一般是有点小技巧的)的功能,除非用户明确要求,否则要让软件的操作方法,运行过程特征等与通用软件保持一致(如Office系列),不然有可能开发出用户根本不想要的功能,结果,出力不讨好,又劳民伤财.
5.程序设计出来后,多多少少会有很多多毛病,开发人员最好和测试人员配合好,并且开发人员最好在自己测不出毛病时,再让测试人员测试.并且最好要好好沟通,这样才能使软件逐步完善起来.

这篇关于Win2000 Pro与Server的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291997

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

升级至三频BE12000! 华硕ROG魔盒Pro路由器首发拆解评测

《升级至三频BE12000!华硕ROG魔盒Pro路由器首发拆解评测》华硕前两天推出新一代电竞无线路由器——ROG魔盒Pro(StrixGR7Pro),该产品在无线规格、硬件配置及功能设计上实现全... 作为路由器行业的T1梯队厂商,华硕近期发布了新旗舰华硕ROG魔盒Pro,除了保留DIY属性以外,高达120

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会