32bit操作系统开发的.net winform程序可以在64bit的win2003下运行吗?还是需要做什么改动?谢谢

解决方案 »

  1.   

    忘记说了,这个winform是vs2003开发的,是.net 1.1的。
      

  2.   

    64位(OS--XP)位应该能用32位Program(非驱动级). 反之应该大多数都不行.
      

  3.   

    回1楼:不算太大的一个程序。所以要求能在64bit win2003上稳定运行就OK了。没必要重新编译的。况且我也没有64bit的环境。回3楼:请问你测试过吗?还是凭经验的??
      

  4.   

    对于纯托管的程序,编译时选择Any CPU选项,32位和64位都可以运行。
      

  5.   


    回楼主,的确没实际测过,经验主义,但是有几个朋友的64bit机子上的确能跑32bit的应用
      

  6.   

    好快,windows系统是向前兼容的,也就是说,64位机器应该可以跑32位的程序.反之不一定行了。
      

  7.   

    首先让我们庆幸的是,WIN32的API还在,虽然VISTA下出来了WPF来替代它。在64为下所有的API都照常用,但是还是应该注意几点:1、据柄和指针都扩展成64为了,这没有什么要说的,要不然64如何体现?所以不可避免的,我们得把32下的项目关于据柄和指针地方调整一下,以前大多数人都用int来代替据柄或者指针,为了向后兼容最好现在都改成IntPtr类型,这样以后也就没有太多后顾之忧了,因为在64位下IntPtr也相应会扩展成64位。2、试和IntPtr相关,因为它的扩展,势必对你当前项目造成不小的影响,尤其“(int)IntPtr“这种写法,这样很容易造成堆栈的溢出,尤其在我们鼠标消息处理中,Message.LParam是个IntPtr,我们通常的做法用LoWord和HiWord取坐标信息,今天奇怪的发现,64位中的LParam的低32位放着坐标信息,高32位的信息不知道何用,很纳闷,今天为了移植我只好强行把高32位清空为0,要不然直接转肯定有溢出,我愿意为MS留了这地方为以后扩展,但是,在我调试当中发现会莫名奇怪的有些数据,只能以后慢慢探索了。
      

  8.   

    只要有框架,winform的程序在哪里都可以运行把,就算是unix也可以把。