Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Delphi2009中编译Delphi5代码_Delphi_Delphi 2009_Dcc32 - Fatal编程技术网

在Delphi2009中编译Delphi5代码

在Delphi2009中编译Delphi5代码,delphi,delphi-2009,dcc32,Delphi,Delphi 2009,Dcc32,通过引用Delphi 5版本的dcc32,可以在Delphi 2009 IDE中使用Delphi 5项目 如果是的话,2009年项目设置(搜索路径、条件定义等)的实施方式是否有任何问题需要注意 编辑:只是澄清一下,我也在将项目升级到Unicode,但仍然需要在旧配置中调试和运行版本。也就是说,它仍然是Delphi,并且假设您有任何自定义组件的源代码或D2009版本,它可以修改为在Delphi 2009中编译。自D5以来,VCL的布局发生了很大的变化,因此需要修改您的uses子句,并可能在这里或那

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

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


编辑:只是澄清一下,我也在将项目升级到Unicode,但仍然需要在旧配置中调试和运行版本。也就是说,它仍然是Delphi,并且假设您有任何自定义组件的源代码或D2009版本,它可以修改为在Delphi 2009中编译。自D5以来,VCL的布局发生了很大的变化,因此需要修改您的
uses
子句,并可能在这里或那里重写一些小片段,但这是可行的。

这取决于您试图实现的目标和您愿意接受的限制

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

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


总而言之,这需要更多的努力,除非您有特定的要求,否则我不建议您这样做。

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

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

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

每次你看到PChar和Char时,问问你自己,它是否需要是PAnsiChar,或者AnsiChar?如果您正在从磁盘、com端口或网络连接读取字节,则需要从Char更改为AnsiChar,从PChar更改为PAnsiChar,否则,您可能只需保持Char和PChar不变,它们将变为Unicode。请始终注意,字符不再是字节

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

W