c# 开发的winform软件 怎么样使其只能在xp系统下运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 开发的winform软件 怎么样使其只能在xp系统下运行相关的知识,希望对你有一定的参考价值。

参考技术A .NET CLR托管代码,还是要开发本机代码?
我主要是以64位Win7 + Visual Studio 2008为平台来开发本机代码,并部署在32位XP/2003/Vista下。

1)如果是基于.NET平台,那就非常简单了,只要编译配置选项为x86,在客户机上部署,只需要有对应的.NET运行库就行,不存在兼容性问题。因为MSIL代码要由JIT编译器实时映射为机器代码。如果是本机代码,就有点麻烦,除了要确保编译配置选项为Win32,还牵扯到Unicode与ASCII库、各种Run-Time库,真是!@#$%^&

2)第二个问题就是纯粹的硬件配置问题了。有时为了彻底解决兼容问题,我在64位Win7下装了XP+VC6虚拟机。我用的是ThinkPad本本,还是很令我满意的。内存越大越好,如果是固态硬盘会更好,只是钞票…… 囧~

3)第三个问题和以一个问题差不多,咱们程序员应该都明白,100%是没人敢“保证”的。就好像不可能没有Bug,只是你没发现Bug而已。但如果基于.NET,事情会好办得多,.NET是不存在“平台输出”概念的,因为它本身与平台无关。至于本机代码,很麻烦,很痛苦的……

4)综上所述,由于使用64位Win7并没有明显的优势,故我觉得你暂时没有必要换64位Win7,除非你想像我一样调试来调试去,汗~

5)有时,你满怀信心的把编译好的MFC程序copy到客户机上,却跳出个错误对话框,那心情…… 但如果是.NET,就不存在这个问题了。

以上是我的实际经验,虽然是90后程序员,汗~
希望能对你有所帮助。
另外,站长团上有产品团购,便宜有保证
参考技术B 貌似只能在你程序内部限制,每个操作系统都有自己的版本号,对比版本号,排除其他操作系统追问

怎么对比,请详细点!

追答

Environment.Version
可以获得操作系统的版本信息 类似于5.2.3.201
比对这个信息

追问

我该在app.config配置文件里怎么样比对!请大虾明示!谢谢

追答

Environment.Version
是.net提供的一个获取操作系统版本的方法
还有其他的获取名称等方法
就在system命名空间下

看下参考文章,可能有帮助

参考资料:http://www.abc188.com/info/html/chengxusheji/C-C--/20080224/13707.html

本回答被提问者和网友采纳
参考技术C 这个要求有点好玩,我给你提几个思路:
1,程序运行一开始读取系统的信息,这样的话,别说只能在XP下了,就算只能在XP SP3下运行都没问题。
2,程序引用一个只有XP系统用的dll,那么其他系统也就不能用了。
3,总的思路就是,找出XP中特有的,不可复制的东西判断一下。
参考技术D 你的思路挺怪的,别人都是想尽办法提高兼容性,你却朝相反的方向努力
一定接受IBM PS2的教训

c# winform背景图片超过屏幕分辨率怎么办

参考技术A 如何在分辨率为1680*1050的屏幕上开发超过些分辨率的winfrom应用程序比如我现在有一张1920*1080的图片,让它去做from的背景,遇到的问题是,1)VS开发环境中,form的size属性值最大只能手动设置为当前屏幕的分辨率2)运行起来后,超过屏幕分辨率真的图像显示不出来解决方法1)设置AutoScrollMinSize属性,把它设置为你背景图片的分辨率,这样运行起来后,点击向下还原会出现滚动条,拖动滚动条,剩下的图像就可以显示出来了2)在VS开发环境中,还是看不到剩下的图像,这样你就没法在上面做东西了,这时要设置一下AutoScroll属性为true,你的开发环境中就会出现双层的滚动条,剩下的图像也会显示出来 另外,若设置label为热区后,防止窗口大小变化时,热区会移动,可以不让背景自动拉伸或自适应,然后把label的lock属性设置为true本回答被提问者采纳

以上是关于c# 开发的winform软件 怎么样使其只能在xp系统下运行的主要内容,如果未能解决你的问题,请参考以下文章

c# winform背景图片超过屏幕分辨率怎么办

C# WinForm开发 需要一个类似office 2007 菜单栏的控件

C# winform 文本框里,怎么设置数字的格式?

请问在C#的Winform下如何用正则表达式限制用户只能在textBox中输入18位的身份证号码。

C# winform 在win7 下界面出错

c# winform中dataGridView的复选框只能选一个,代码怎么写?