是32位和64位的问题 你在原机器上使用的是32位编译器,在新系统上使用的是64位的编译器,64位编译出来的程序,不是如何进行调试? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 《如何让32位编译的程序在64位系统中正常运行》http://blog.csdn.net/lyhoo163/article/details/26615191 http://http://blog.csdn.net/lyhoo163/article/details/26615191 如何让32位编译的程序在64位系统中正常运行 操作系统从32位步入64位,对于用户来说是质的飞跃。由于CPU读取数据宽度增加1倍,速度和精度都带来了跨跃。同时,CPU的读写方式的改变,对于程序员来说,需要适应跟进。虽然,64位系统支持32位程序,但是是有条件的,因为系统对CPU的操作有所变化,有的有32位上操作,就不能在64位在操作了。比如,软件通过调用底层,通过汇编读写数据的源程序,在32位上运行自如,在64位上就出现问题,执行出错。 在开发工具方面,基于Java、.NET的工具可以很顺利地支持64位平台。因为,它们不通过调用底层实现代码,而是基于.Net调用实施。对于Delphi来说,由于它是与操作系统紧密相关的,与它相关的数据类型,操作系统的SDK等变化都会很大,所以从32位到64位的迁移就会出现一些困难。至于汇编语言,它的变化就会更大了。 最近笔者,遇到一个问题:在32位上编译的(C/S)三层数据库管理系统,由于客户服务器操作系统由32位升级到64位,以至原服务器端(程序)不能在64位服务器系统上运行。为此,笔者通过改进代码,最终实现“32位程序可以在64位系统正常运行”的目的。 下面是笔者,初步实践,仅供同仁参考: 1、对于涉及到ASM代码的单元进行修改,采用API取代。 2、对于一些引用的读写硬件的单元,多数采用ASM代码,取消引用该类单元。 3、尽可能不使用第三方控件。特别是,无源代码的第三方控件。(内含ASM代码) 4、修改后的读写硬件的单元,要分别在64位机器中,调试。主要验证: (1)可以运行(支持代码)。 (2)返回值32位与64位一致。 通过,上述代码改进。编译后的程序。在64位上正常运行。 有淄博的朋友吗?会DELPHI的,请位老师教教我,付费的。 如何修改ADOQuery查询数据集的当前记录? 高手请进:请问哪位高手知道客户端对服务器的资源的访问种类(访问哪个(些)文件,)访问了几次,请不吝赐教,谢谢! 我的同事2个月赚了16万,然后差点进监狱 请教;ehlib3.5问题 程序调用问题,请各位大狭多多指教! 一个简单的问题:怎么截取一个String的一部分! 我要在最小化时执行一段代码,该把这段代码放在哪里 如何实现在listview的列标题上右键单击后弹出一个快捷菜单 不是很难的问题但是我不会 为什么 需要参数‘@kssj’,但未提供该参数“
http://blog.csdn.net/lyhoo163/article/details/26615191
在开发工具方面,基于Java、.NET的工具可以很顺利地支持64位平台。因为,它们不通过调用底层实现代码,而是基于.Net调用实施。对于Delphi来说,由于它是与操作系统紧密相关的,与它相关的数据类型,操作系统的SDK等变化都会很大,所以从32位到64位的迁移就会出现一些困难。至于汇编语言,它的变化就会更大了。
最近笔者,遇到一个问题:在32位上编译的(C/S)三层数据库管理系统,由于客户服务器操作系统由32位升级到64位,以至原服务器端(程序)不能在64位服务器系统上运行。为此,笔者通过改进代码,最终实现“32位程序可以在64位系统正常运行”的目的。
下面是笔者,初步实践,仅供同仁参考:
1、对于涉及到ASM代码的单元进行修改,采用API取代。
2、对于一些引用的读写硬件的单元,多数采用ASM代码,取消引用该类单元。
3、尽可能不使用第三方控件。特别是,无源代码的第三方控件。(内含ASM代码)
4、修改后的读写硬件的单元,要分别在64位机器中,调试。主要验证:
(1)可以运行(支持代码)。
(2)返回值32位与64位一致。
通过,上述代码改进。编译后的程序。在64位上正常运行。