Klasse/Funktion dynamisch halten
-
Hi Leute...
Sorry fuer den bloeden Titel, aber ich weiss nicht, wie ich das in wenigen Worten beschreiben soll...
Also Folgendes: Ich habe eine Klasse. Diese Klasse besitzt eine Funktion, die ich staendig erweitern moechte. Diese Klasse (und dann natuerlich auch die Funktion) verwende ich in einem Programm von mir. Jetzt will ich aber, dass sich der Benutzer nicht jedesmal das komplette Programm runterladen muss, wenn es von der Klasse ein Update gibt. Also will ich dem Benutzer die Klasse extra (und nicht in der Exe eingebunden) mitgeben. Jetzt weiss ich aber nicht, wie ich das machen soll???
Nimmt man fuer solche Dinge eine DLL oder wie macht man das dann?
Danke schonmal fuer alle Antworten.
MfG Aoeke
-
Oder'n Patchprogramm was nur die Änderungen enthält...
-
hä...
Wenn du mit .Net arbeiten würdest, könnte ich dir zeigen, wie du dein Programm zur Laufzeit erweitern könntest. Das wäre ganz einfach. Mit Java ginge das theoretisch auch. Mit was programmierst du ?
-
Ich programmiere mit C++.
Sorry, wenn der Text ein wenig unverstaendlich ist..
MfG Aoeke
-
Sgt. Nukem schrieb:
Oder'n Patchprogramm was nur die Änderungen enthält...
Die Idee ist nicht schlecht. Du lässt den User eine Patchdatei laden, die du dann im Programm verarbeitest.
Eine andere Möglichkeit wären aber auch die Dll's.
[edit]
oder eine Scriptsprache (aber die ist sch**sse, un lahm)
[/edit]
-
BlueShift schrieb:
Sgt. Nukem schrieb:
Oder'n Patchprogramm was nur die Änderungen enthält...
Die Idee ist nicht schlecht. Du lässt den User eine Patchdatei laden, die du dann im Programm verarbeitest.
Wie soll das funktionieren? Wenn ich die Klasse in die Exe miteinbinde, muesste ich doch bei jeder Aenderung das Programm erst neu kompilieren??? Oder wie? Haeh..
DLL ist vielleicht auch doof, da das Programm spaeter auch auf Linux laufen soll. Wie unterscheiden sich Windows-DLL's von den so-Dateien unter Linux? (Das war doch die "Linux-Version" von DLL's?)
MfG Aoeke
-
Das mit dem kompilieren ist sowieso so. Ich meine aber, dass man das wie folgt lösen könnte :
Du kompilierst dein Programm mit der neuen Klasse.
Dieses vergleichst du nun mit dem alten Programm, wobei du die Unterschiede in einem bestimmten Format exportierst. Im Programm selbst implementierst du eine Funktion, die aus dem Programm selbst mit hilfe der Patchdatei ein neues Programm macht. In der Patchdatei selbst muss eine Patchversionsnummer stehen,
damit es nicht etwas 'dll-hell'-ähnliches gibt. Du solltest einfach schauen,
dass die Patchdatei nicht grösser wird, als das eigentliche Programm, sonst lohnt sich der ganze Aufwand nicht.
Auf jeden Fall ist diese Lösung Platformunabhängig.
mfg BlueShift
-
der Sinn von dynamischen Librarys ist es doch, dass du diese beliebig austauschen kannst ohne alles neu zu kompilieren (musst eben nur ABI kompatibel bleiben). Das geht unter Linux, Windows und wer weiss was für ein OS, sonst wären es ja nicht dynamische Librarys