Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:43

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 09, 2004 16:18 
Offline
DGL Member
Benutzeravatar

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...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 09, 2004 17:11 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Zitat:
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 09, 2004 18:12 
Offline
DGL Member

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)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 09, 2004 18:34 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 09, 2004 18:57 
Offline
DGL Member

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 :D
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)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 09, 2004 19:12 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Code:
  1.  
  2. var
  3.  cls:TPersistentClass;
  4.  obj:TPersistent;
  5.  p:Cardinal;
  6. begin
  7. p:=LoadPackage('test.bpl');
  8. cls:=FindClass('TTestClass');
  9. obj:=cls.create;
  10. obj.Free;
  11. UnloadPackage(p);
  12. end;


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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]