gpt4 book ai didi

delphi - 将 Delphi 形式转换为 Lazarus 时出现问题

转载 作者:行者123 更新时间:2023-12-03 15:53:33 27 4
gpt4 key购买 nike

将 Delphi Windows 服务应用程序移植到 FPC Linux 控制台应用程序后,我尝试使用 GUI 移植程序。我在我的 Windows 机器上安装了最新的 Lazarus 并转换了简单的“hello world”应用程序。一个单元具有表单(Delphi 中的 .dfm 文件)。 Lazarus 将该表单转换为 .lfm 和 .lrs 文件。但编译时出现问题:

windres: C:/htlib/pas/FInfo.lrs:1: syntax error
Free Pascal Compiler version 2.2.4 [2009/10/25] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Win32 for i386
Compiling lazarus_test.lpr
...
Compiling C:\htlib\pas\FInfo.pas
Compiling resource C:\htlib\pas\FInfo.lrs
d:\lazarus\fpc\2.2.4\bin\i386-win32\windres.exe: C:/htlib/pas/FInfo.lrs:1: syntax error
C:\htlib\pas\FInfo.pas(366,1) Error: Error while linking
C:\htlib\pas\FInfo.pas(366,1) Fatal: There were 1 errors compiling module, stopping

FInfo.lrs 文件的第一行看起来像文本文件(不像 .res 文件那样是二进制文件):

{ This is an automatically generated lazarus resource file }

LazarusResources.Add('TfrmInfo','FORMDATA',[
'TPF0'#8'TfrmInfo'#7 ...

在设计器中我可以看到并编辑这个表单,所以我认为它已经成功转换了。也许 .lrs 文件有问题?它不应该是二进制的 .res 文件吗?我应该做什么来编译这个表格?

编辑:

我的 .pas 单元的形式如下:

{$R *.lrs}

最佳答案

删除任何杂散的 {$R *.res} 或 {$R *.lrs} 指令。

2.2.x fpc/lazarus 版本将 *.res 文件转换为 .lrs 文件,然后将其作为结构化常量包含在内。如果将 *.res 包含在实现点下方(如 Delphi 中),则独立添加 *.res 会导致此失败。正确的 *.lrs 包含点位于初始化部分。

只有 2.4.x(RC1 已发布)将具有基于 {$R *.res} 的“真正”资源支持。但这可能需要几个月的时间才能完成(0.9.30)

关于delphi - 将 Delphi 形式转换为 Lazarus 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com