PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C/C++: Design-Frage



ContainerDriver
05-08-2004, 20:14
Hallo Leute,
ich habe ein Frage bezüglich zum Design eines Programmes. Das Prog gibt (jetzt mal vereinfacht) ein Wort aus.
Jetzt will ich das Prog aber erweitern, so, dass das Prog eine Übersetzung des Wortes in einer bestimmten Sprache ausgibt.
Das Prog soll dann als Bibliothek (lib) fungieren, so dass man die Klasse aus dieser Bibliothek in einem anderen Projekt weiterverwenden kann.
Jetzt zum Problem: der Übersetzer.

(1) Im Grunde kann ich die Bibliothek an den von mir programmierten Übersetzer koppeln, allerdings benötigt man noch diese Übersetzer-Bibliothek, wenn man die Bilbiothek des Progs verwenden will, was ja nicht so vorteilhaft ist (weil sie u.U. noch nachinstalliert werden muss (vgl ./configure (da musste wolh schon jeder mal irgendeine lib nachinstallieren))).

(2) Eine andere Möglichkeit wäre, einen Funktionspointer auf einen Übersetzer zu setzen (z.B. char* (*translate)(char*)).Sollte man nun einen Übersetzer verwenden, der einen anderen Funktionsaufruf als translate(char*) hat, könnt man ja eine Wrapper-Funktion schreiben (in der Form translate(char*)), die dann den eigentlichen Übersetzer aufruft.
Das ist das Problem bei dieser Variante.

Welche Art ist denn besser, 1 oder 2? Ich tendiere fast zu 2., bin mir aber nicht so sicher...deshalb frage ich ja ;) !

Schon mal Danke fürs lesen!

Gruß, Florian

panzi
06-08-2004, 15:24
Also ich würd ja zu gettext (http://www.gnu.org/software/gettext/) tendieren. ;) (Ich weiß, ist keine AW auf deine Frage. Ich würd eine Abhängigkeit machen oder statisch die eine lib in die andere linken.)

ContainerDriver
06-08-2004, 17:03
Servus,
ich habe mich soeben entschieden, es über Funktionspointer zu machen, so hat man deutlich mehr Freiheiten & man ist nicht an einen Übersetzer gebunden. So kann man z.B: auch gettext als Übersetzer verwenden.

Gruß, Florian