AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XE2 und dxgettext / gnugettext.pas

Ein Thema von Bbommel · begonnen am 6. Sep 2011 · letzter Beitrag vom 27. Mär 2012
Antwort Antwort
Seite 1 von 3  1 23      
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
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: XE2 und dxgettext / gnugettext.pas

  Alt 6. Sep 2011, 15:56
Hallo,

wenn Du mit der Maus über EnumResourceModules fährst/bzw den Mauspointer darauf liegen lässt,
erscheint dann nicht ein Fenster mit den Parametern welche die Procedure/Function erwartet?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Bbommel

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

AW: XE2 und dxgettext / gnugettext.pas

  Alt 6. Sep 2011, 16:01
Doch klar, hätte ich gleich dazu schreiben sollen, sorry:

Code:
System.EnumResourceModules(TEnumModuleFuncLW,Pointer) Methode

Deklariert in System

Parameter

Func
   System.EnumResourceModules.TEnumModuleFuncLW
Data
  System.Pointer
Ich nehme an, dass das Problem ist, dass die als Parameter erwartete Funktion und die tatsächlich übergebene nicht übereinstimmen. Übergeben wird ja "SysUtilsEnumStringModules" (Deklaration habe ich ja oben extra mit aufgenommen) und erwartet wird eine Funktion vom Typ System.EnumResourceModules.TEnumModuleFuncLW. Und wie eben dieses TEnumModuleFuncLW kann ich in der system.pas ja nicht nachgucken. Offenbar aber anders als bisher oder bin ich auf einem Irrweg?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: XE2 und dxgettext / gnugettext.pas

  Alt 6. Sep 2011, 20:01
Guten Abend,

kompilierst Du für die 64bit Platform -> da haben sich meines Wissens u.a. die Pointergrößen
verändert.

Wenn Du das für die 32bit Platform kompilierst sollten eingentlich keine Unterschiede von Typgrößen
vorhanden sein.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#5

AW: XE2 und dxgettext / gnugettext.pas

  Alt 6. Sep 2011, 20:36
function SysUtilsEnumStringModules(Instance: Longint; Data: Pointer): Boolean;
Longint muss hier NativeInt sein.
Lars
  Mit Zitat antworten Zitat
Bbommel

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

AW: XE2 und dxgettext / gnugettext.pas

  Alt 7. Sep 2011, 10:44
NativeInt hat wunderbar geholfen, vielen Dank.
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#7

AW: XE2 und dxgettext / gnugettext.pas

  Alt 7. Sep 2011, 12:24
Kannst Du die ganze Datei einmal hier hochschieben ? Heute ist meine Bestellung für XE 2 raus und dxgettext verwendi ich auch viel
  Mit Zitat antworten Zitat
Bbommel

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

AW: XE2 und dxgettext / gnugettext.pas

  Alt 7. Sep 2011, 12:50
Klar... diese Version hier habe ich auch an Lars geschickt, so dass er sie hoffentlich veröffentlicht. Sie sollte wieder unter allen Delphi-Versionen laufen. Getestet habe ich mit D2009 und XE2.
Angehängte Dateien
Dateityp: zip gnugettext.zip (24,1 KB, 236x aufgerufen)
  Mit Zitat antworten Zitat
DerDan

Registriert seit: 15. Nov 2004
Ort: Donaueschingen
251 Beiträge
 
Delphi XE3 Professional
 
#9

AW: XE2 und dxgettext / gnugettext.pas

  Alt 16. Nov 2011, 09:29
Hallo,

Vorübersetzte Strings für die Delphi Runtime Library gibt es auf der dxgettext Seite nur bis Delphi 2006!
siehe http://dybdahl.dk/dxgettext/translations/
Gibt es dafür einen Grund oder gibt es eine andere Quelle?

Ich bin grade das erste mal dabei ein Projekt für mehrer Sprachen zu erstellen.
Da ist bei Delphi2010 dxgettext doch okay oder gibt es was besseres?

mfg

DerDan
nichts ist so schön wie man es sich vorstellt
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.346 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: XE2 und dxgettext / gnugettext.pas

  Alt 16. Nov 2011, 09:52
Du kannst vieles benutzen, auch die interne Lösung von Delphi (Projekt --> Sprachen).
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz