如何移植32位C#工程到64位的XP或者VISTA下?

原创 2006年06月20日 19:59:00

首先让我们庆幸的是,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留了这地方为以后扩展,但是,在我调试当中发现会莫名奇怪的有些数据,只能以后慢慢探索了。

3、在微软的CSDN上查到size_t也扩展了,不过我在移植的中间还没有发现这个问题,希望大家也都注意一下。

 

上面是我今天的一点心得,希望你能用得上,谢谢您的光顾!

如果有什么错误的地方,希望大家也指出来!

wangweixing2000

32位程序移植到64位需要考虑的问题

概述 从32位到64位,根本性的区别在于两种数据类型发生了变化:long和pointer。在32位环境下,两者长度都是32位,也就是4个字节;而在64位环境下都是8个字节。所以当你把pointer或者...
  • u010370185
  • u010370185
  • 2014年02月23日 23:29
  • 2066

C/C++32位程序移植到64位操作系统(转)

1.  32位平台与64位平台 平台的定义 计算机系统是由硬件与软件两部分组成的。所谓平台也就是指硬件与相应的系统软件(包括操作系统、编译器和与开发环境有关的应用程序(如数据库))。  64位硬...
  • dragoo1
  • dragoo1
  • 2015年05月22日 00:52
  • 5980

32位移植到64位 注意事项

32bit-64bit porting work注意事项 64位服务器逐步普及,各条产品线对64位升级的需求也不断加大。在本文中,主要讨论向64位平台移植现有32位代码时,应注意的一些细小问题。 ...
  • w174504744
  • w174504744
  • 2013年03月15日 14:57
  • 9809

32位项目转64位项目的个人体会

由于项目需要,最近将办公室里的一个学长写的MFC项目从vs2010移植到vs2013,出现了一堆多字节转到Unicode的错误,其实在写这个项目的时候就有想过为什么不用Unicode,《windows...
  • wuzetao0108
  • wuzetao0108
  • 2016年04月30日 10:09
  • 281

[windows下32位移植到64位]

情景 一般情况下,32位程序是能在64位机子上正常运行的,64位对32位兼容,通过WOW64机制加载32位程序,不需要修改代码就行了;但不能使用64位的性能。如果你要使用64位的性能就要对32位代码进...
  • liuhuili23
  • liuhuili23
  • 2014年01月07日 18:01
  • 2390

C程序将32位代码向64位平台移植的注意事项

随着低成本64位平台的来临,加上内存和硬盘价格的不断下跌,无疑为32位程序向64位硬件的移植又加了一把劲,那些科学运算、数据库、消耗大量内存或密集浮点运算的程序也搭上了这一顺风车。在本文中,主要讨论向...
  • bytxl
  • bytxl
  • 2015年08月20日 19:45
  • 761

php开发环境配置(windows+apache+msql+php)wamp,不区分32位还是64位,都可以用的

个人的web目录:d:\www apache下载地址:http://httpd.apache.org/                                          ...
  • u011567667
  • u011567667
  • 2013年08月01日 07:49
  • 1417

关于系统32位和64位的程序发布和部署(一)

如果程序集文件只包含类型安全的托管代码,那么无论在32位版本的windows上,还是64位版本上的windows上,所写的代码都应该能正常工作。在这两种版本上的windowss上运行,源代码无需进行任...
  • huangxiangec
  • huangxiangec
  • 2014年02月23日 16:45
  • 5835

64位系统代码移植面临的20个问题(一)

原文地址:http://www.viva64.com/en/a/0004/ 译者注:由于能力有限,没能一次性翻译完。这篇文章分两次完成,这是第一部分。恳请指正翻译错误。 摘要 当从32位平台向6...
  • john2xy
  • john2xy
  • 2014年03月02日 22:26
  • 1173

32位和64位程序的区别

由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件,此处以VS为例。 1、编译程序根据需要选择不同的编译环境: X86和win32位32位程序,X64为64位程序,可以选择不同...
  • nma_123456
  • nma_123456
  • 2015年04月16日 17:13
  • 8312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何移植32位C#工程到64位的XP或者VISTA下?
举报原因:
原因补充:

(最多只允许输入30个字)