2

通过引用 dcc32 的 Delphi 5 版本,是否可以在 Delphi 2009 IDE 中使用 Delphi 5 项目?

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

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

4

3 回答 3

6

这取决于您要完成的工作以及您愿意接受的限制。

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

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

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

于 2009-11-30T13:16:53.853 回答
1

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

于 2009-11-30T12:43:11.040 回答
1

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

我建议您打开项目并查看失败的地方,关闭项目(不保存任何内容),找到您需要的组件版本并安装它们,一旦项目以设计模式打开(安装了所有组件),您就可以开始移植.

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

每次看到 PChar 和 Char 时问问自己,是否需要使用 PAnsiChar 或 AnsiChar?如果您正在从磁盘、com 端口或网络连接读取字节,则需要从 Char 更改为 AnsiChar,从 PChar 更改为 PAnsiChar,否则,您可能只保留 Char 和 PChar 原样,它们将变为统一码。永远要知道 Char 不再是一个字节了。

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

W

于 2009-11-30T15:02:38.907 回答