3

DelphiWindowsサービスアプリをFPCLinuxコンソールアプリに移植した後、GUIを使用してプログラムを移植しようとしました。Windowsマシンに最新のLazarusをインストールし、シンプルな「helloworld」アプリを変換しました。1つのユニットにはフォーム(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}
4

1 に答える 1

4

漂遊した{$R*.res}または{$R*.lrs}ディレクティブを削除します。

2.2.x fpc / lazarusバージョンは、*。resファイルを.lrsファイルに変換し、構造化定数として含まれます。Delphiのように、実装ポイントのすぐ下に* .resを追加すると、この失敗が独立して発生します。適切な*.lrs包含ポイントは、初期化セクションにあります。

2.4.x(RC1がリリースされている)のみが、{$ R*.res}に基づく「実際の」リソースサポートを備えています。しかし、それはおそらく(0.9.30)を少しずつ通過するのに数ヶ月かかるでしょう

于 2009-11-16T13:16:04.313 に答える