在Delphi 2009中编译delphi 5代码

时间:2009-11-30 12:39:46

标签: delphi delphi-2009 dcc32

通过参考Delphi 5版本的dcc32,可以在Delphi 2009 IDE中使用Delphi 5项目吗?

如果是这样,有关项目设置(搜索路径,条件定义等)在2009年实施的方式有哪些问题需要注意?

编辑:只是为了澄清我也将项目升级到Unicode,但仍需要在旧配置中调试和运行版本

3 个答案:

答案 0 :(得分:6)

这取决于你想要达到的目标以及你愿意接受的限制。

据我所知,您无法使用Delphi 2009 IDE直接维护Delphi 5项目。例如,即使您坚持两者之间通用的功能,Delphi 5中不支持的某些属性也会写入您的DFM,从而在运行时导致错误。

我维护了用Delphi 2005/2006/2007编写的项目和库代码,这些代码也在Delphi 6/7中使用。我通常使用最新的IDE编辑和调试它们。我为每个目标版本都有单独的项目文件,并确保它们都使用相同的memory manager。最后,我有一个自动构建过程和单元测试,它会从DFM(我自己的DFM Scrubber)中删除不兼容的属性,确保所有目标始终编译并运行单元测试,这些测试也会针对每个目标重新编译。 p>

总而言之,这是更多的努力,除非您有特定的要求,否则我不会推荐它。

答案 1 :(得分:1)

没有。也就是说,它仍然是Delphi,假设你有任何自定义组件的源代码或D2009版本,它可以修改为在Delphi 2009中编译。自D5以来VCL的布局已经发生了很大变化,所以期望必须修改你的uses条款,可能会在这里和那里重写一些小块,但它是可行的。

答案 2 :(得分:1)

您可以将代码移植到Delphi 2009/2010级别(Unicode),也可以不安装产品。

我建议您打开项目并查看失败的位置,关闭项目(不保存任何内容),找到所需的组件版本并安装它们,一旦项目在设计模式下打开(所有组件都已安装),可以开始移植。

阅读网站上提供的Unicode Delphi迁移(移植)信息。

每次看到PChar和Char时,问自己是否需要PAnsiChar或AnsiChar?如果从磁盘,COM端口或网络连接读取字节,则需要从Char更改为AnsiChar,从PChar更改为PAnsiChar,否则,您可能只是保留Char和PChar,它们将成为Unicode格式。始终要知道Char不再是Byte了。

您还必须使用不带A(ansi)后缀的版本替换对Win32 API调用的显式引用。示例:CreateFileA可能需要变为CreateFile。

w ^