Einzelnen Beitrag anzeigen

Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#1

XE2 und dxgettext / gnugettext.pas

  Alt 6. Sep 2011, 15:49
(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
  Mit Zitat antworten Zitat