Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Auch wenn ich nix Konstruktives beitragen kann : Warum machst du deine Engine denn nicht Open-Source? Das wäre die beste Lösung und jeder könnte das Ding anpassen...denn ich persönlich würde keine Engine nutzen die in Form von Packages oder gar DCUs kommt, denn was macht man in einem solchen Falle wenn ne Änderung nötig ist, aber der Autor das nicht machen will?
Und ausserdem ist Open-Source die beste Möglichkeit der Community einen Gefallen zu tun...
Aha. Wenn ich also meine Engine als .BPL Datei vertreibe, NUR die BPL Datei, dann kann ich die genauso installieren, mitsamt visuellen Komponenten, aber ohne die DCU-Dateien kann man die Engine nur als Runtime Package verwenden. Lieg ich da richtig?
Ja richtig. Zusätzlich zu den BPL Dateien mußt du aber auch noch die DKP Datei mitgeben.
Zitat:
Wenns schon unbedingt eine Laufzeitbibliothek sein muss, überlegst du dir besser eine prozedurale API (kann ja intern dennoch objektorientiert sein) und machst eine DLL - die kann man dann wenigstens auch mit anderen Programmiersprachen bzw. beliebigen Delphiversionen verwenden.
Wenn es nur Delphi sein soll, dann sind Packages die richtige Wahl, weil sie automatisch funktionieren. Man kann auch mit LoadPackage BPL Dateien dynamisch laden und dann die Klassen darin verwenden. So macht es z.B. Delphi.
Wenn das ganze mit mehreren Sprachen verwendet werden soll, bieten sich immer noch Interface an stelle von einer prozeduralen Schnittstelle an.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Also jetzt bin ich durcheinander.
Ich fasse zusammen:
--> Ich möchte (vorerst) nur Delphi unterstützen.
--> Wenn ich eine BPL-Datei habe, kann ich sie zur Laufzeit mit LoadPackage laden, und wie ein ganz normales Package verwenden.
--> Das geht ohne die DCU-Dateien und uses-Schlüsselwörter.
--> Das geht nur wenn der Endanwender die selbe Delphi-Version verwendet wie ich (D5).
--> Das mit D5 erstelle Package ist nicht zu D6 oder D7 kompatibel.
Lieg ich da richtig?
Und kann ich dann die Klassen ganz normal mit var-Keywords usw. verwenden?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Ja, nur die Klasse ist zur Kompilierungzeit noch nicht bekannt. Daher muß man sie mit FindClass/GetClass suchen.
Wenn eine Package geladen wird, werden alle initialization Abschnitte der Units ausgeführt. Dort müßte die Klasse dann registriert werden.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Und wo rufe ich all diese Funktionen auf?
Hast du da einen Beispielcode?
Und noch eine Frage Die DCU-Dateien sind ja nicht kompatibel zu anderen Versionen.
Aber man kann ja auch C++-Objektdateien erstellen.
Kann man mit denen ein normales Package machen?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Das geht natürlich nur, wenn das Projekt auch mit Packages erstellt wurde, denn sonst gibt es zweimal die Unit Classes mit der Klassenliste in dem Hauptprogramm und in der VCL Laufzeitpackage
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.