(Hinweis: die Frage habe ich so ähnlich auch schon auf der englischen dxgettext-Mailingliste gestellt, vielleicht lässt sich aber hier schneller eine Lösung finden, weil schon mehr Leute mit XE2 rumgetestet haben. Daher hoffe ich, dass der Crosspost ok ist)
Hallo zusammen,
beim Testen mit der Trial-Version von XE2 bin ich über ein Problem beim Komplieren der Datei gnugettext.pas gestolpert, also
der Datei des Übersetzungstools
GNU Gettext für Delphi.
Hier mal der Ausschnitt aus der Datei, der vielleicht für die Fehlersuche reichen müsste:
Delphi-Quellcode:
type
PStrData = ^TStrData;
TStrData = record
Ident: Integer;
Str: String;
end;
function SysUtilsEnumStringModules(Instance: Longint; Data: Pointer): Boolean;
{$IFDEF MSWINDOWS}
var
Buffer: array [0..1023] of Char; // WideChar in Delphi 2008, AnsiChar before that
begin
with PStrData(Data)^ do begin
SetString(Str, Buffer,
LoadString(Instance, Ident, @Buffer[0], sizeof(Buffer)));
Result := Str = '';
end;
end;
{$ENDIF}
{$IFDEF LINUX}
var
rs:TResStringRec;
Module:HModule;
begin
Module:=Instance;
rs.Module:=@Module;
with PStrData(Data)^ do begin
rs.Identifier:=Ident;
Str:=System.LoadResString(@rs);
Result:=Str='';
end;
end;
{$ENDIF}
function SysUtilsFindStringResource(Ident: Integer): string;
var
StrData: TStrData;
begin
StrData.Ident := Ident;
StrData.Str := '';
EnumResourceModules(SysUtilsEnumStringModules, @StrData);
Result := StrData.Str;
end;
Der Fehler tritt dann bei vorvorletzten Zeile auf, also bei
EnumResourceModules(SysUtilsEnumStringModules, @StrData);
. Hier gibt es dann den Klassiker: "[DCC Fehler] gnugettext.pas(925): E2250 Es gibt keine überladene Version von 'EnumResourceModules', die man mit diesen Argumenten aufrufen kann"
Hat irgendwer eine Idee? EnumResourceModules ist aus der system.pas, aber die ist natürlich bei der Trial-Version nicht im Quelltext dabei, so dass ich nicht alte und neue Version vergleichen kann.
Bis denn
Bommel