AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Klassen in DLL

Ein Thema von RWarnecke · begonnen am 18. Sep 2008 · letzter Beitrag vom 22. Sep 2008
Antwort Antwort
Seite 3 von 3     123
EWeiss
(Gast)

n/a Beiträge
 
#1

Re: Klassen in DLL

  Alt 21. Sep 2008, 18:17
Zitat:
Wenn ich eine Anwendung habe, die eine DLL benutzt dann kann ich innerhalb der DLL den Code anpassen und erweitern. Neue Funktionen kann ich dabei auch hinzufügen. Allerdings kennt meine alte Anwendung die neuen Funktionen ja nicht. Wie auch, als sie entstand existierten diese ja nicht. Deshalb die Frage: Wie soll das in VB gehen? Etwas was ich nicht kenne kann ich nicht aufrufen. Deshalb ist es ok, wenn ich die beiden Units in der Anwendung kenne. Oder nicht?
Du kannst keine Unit's addieren die deiner anwendung nicht bekannt sind.
Baby.dll hat Emil geschrieben die Anwendung von Omata kennt diese aber nicht ..
Wie willst du sie dann addieren ?
Beide kennen wir nur das Interface IPersonU

Nein kannst du nicht!
Ein Plugin ist nur soweit erweiterbar wie die Class IPersonU das zuläßt
Alles darüber hinaus würde fehlschlagen da es in deiner Anwendung nicht verarbeitet wird.

Anwendung und DLL's sind abhängig vom Interface IPersonU
Willst du also neue Dinge hinzufügen geht das nur wenn diese von IPersonU
nach außen freigegeben werden und die neuen Funktionen bzw.. die geänderte Unit im jeweiligen Quelltext übernommen wird
also in jeder DLL und der anwendung aktualisiert wird.

Jedes Programm kann dann die IPersonU einbinden und mit deiner Anwendung kommunizieren. bzw.. die Plugins verwenden.

Zitat:
Also das sehe ich jetzt nicht so bestätigt. Wo habe ich den wesentlich mehr Code geschrieben?
Na ja wollen wir nicht so kleinlich sein.

Meine komplette Anwendung kompiliert verwendet gepackt 22.5KB incl.. Source
Deine 1,2MB gut du hast die Runtime drin .. ohne Source
Auch habe ich keinerlei zusätzliche klassen einbinden müssen.

EDIT:
Auch das einbinden der IPersonU ist eigentlich nicht OK!
Diese ist nämlich ebenfalls eine eigenständige Datei(DLL) also ein Wrapper zwischen deiner Anwendung
und den Dll's welche sie verwenden du darfst also nur das interface von IPersonU einbinden nicht
die komplette Unit.

Interface schreibt PersonX
Ich die DLL und du die Anwendung.
Wird das interface geändert bekommt dieses eine neue GUID und du mußt
deine Anwenung daraufhin anpassen so wie ich meine DLL
Zitat:
Allerdings kennt meine alte Anwendung die neuen Funktionen ja nicht.
Nun kennt deine alte Anwendung die Funktionen auch.

gruss Emil
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Klassen in DLL

  Alt 21. Sep 2008, 19:07
Sorry, ich muss hier ein paar fundamentale Missverständnisse aufklären...

Die VB Lib IST eine COM-Lib, VB kann ja gar nix anderes. In VB kann man nichtmal das interface selbst definieren, wodurch Versionierung praktisch unmöglich ist.
IOW: Eine pp, die dein Interface nutzt würde dir nach der Erweiterung desselbigen um die Ohren fliegen, weil VB einfach ncht nur die DispIDs nach der Stellung des Mondes vergibt, auch die reihenfolge der Members ist NICHT sichergestellt.

VB für sowas nutzen zu wollen, und diese fragile und instabile Lösung auch noch als "einfach" anstatt als "vereinfacht bis zum Grade der Nutzlosigkeit" zu bezeichnen kann auch nur einem VB'ler einfallen.

Ich hasse es hier wieder auf Stereotype zurückzukommen, aber VB ist nunmal nur ein erbärmliches Subset von dem was Delphi kann.
IOW: Delphi ist ein Superset von VBs Möglichkeiten. IOW2: Wer VB nutzt, nutzt immer das falsche Tool.

Delphi kennt Interfaces, und die halten sich in Delphi immer an COM-Pflichten, ohne dass du selbst durch die schrecklichen Höllen gehen müsstest, die man mit einer COM-Lib auf sich nehmen würde.

Wenn du deine Interfaces erweitern willst, dann leite einfach ein neues von dem alten ab und implementiere auch das.
Apps oder Plugins, die nur das alte Interface kennen, werden weiterhin funktionieren wie bisher.

Du kannst hier im Forum nach Hier im Forum suchenDLL und Interface suchen und solltest genug Posts von mir und anderen dazu finden.
Plugins ohne Packages, aber mit Interfaces sind absolut kein Problem.
Und wenn man sich einmal in die Verwendung von Interfaces eingearbeitet hat, hat man eine wunderbare Lösung, in der Plugins auch kompatible zu zukünftigen Versionen deiner App sind. Einfach weil du neue Versionen der Interfaces als Ableitungen dieser implementierst.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: Klassen in DLL

  Alt 21. Sep 2008, 19:12
Zitat:
Die VB Lib IST eine COM-Lib, VB kann ja gar nix anderes.
Quatsch kann dir DLL Projecte zeigen welche sehr wohl in der lage sind Standard DLL's zu erstellen
Sorry aber du lebst hinterm Mond!

Wenn du schon mitunter aufschlußreiche Dinge von dir gibst was VB angeht
dann Informiere dich bitte vorher richtig als hier Dinge zu verbreiten welche ich so nicht stehen lassen kann.

Zitat:
VB für sowas nutzen zu wollen, und diese fragile und instabile Lösung auch noch als "einfach" anstatt als "vereinfacht bis zum Grade der Nutzlosigkeit" zu bezeichnen kann auch nur einem VB'ler einfallen.
Du bist lustig mit dieser Methode verwalte und initialisiere ich meine Plugins
wie kannst du ohne internen Wissen so was behaupten.
Ich bin sehr wohl in der Lage bis zu 5 Standard und 1 Vis Plugin zur gleichen zeit laufen zu lassen.
Mehr habe ich leider nicht

Aber wird langsam OffTopic das Thema hier

bis mutig ?
Dann schau meinen Player geschrieben in VB an
Wenn ich das immer höre von manchen Leuten.
Programmiere seit 15 Jahren mit Vb und 2 mit Delphi und gehe immer wieder gerne zurück .. hehehe

gruss Emil
Angehängte Grafiken
Dateityp: jpg preview_152.jpg (222,1 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Klassen in DLL

  Alt 21. Sep 2008, 19:31
Zitat von EWeiss:
Zitat:
Die VB Lib IST eine COM-Lib, VB kann ja gar nix anderes.
Quatsch kann dir DLL Projecte zeigen welche sehr wohl in der lage sind Standard DLL's zu erstellen
Du kannst also in VB Funktionen in einer fest definierten Calling convention exportieren, die du per LoadLibary/GetProcAdress ausführen kannst?
Ist das wirklich was du hier behaupten willst? Denn wenn es das nicht ist, dann bringe besser nicht den Mond ins Spiel.
Zitat:
Sorry aber du lebst hinterm Mond!
Hat aber nix mit VB zu tun, sondern damit, dass es der Letzte Ort ist, an dem man vor Privat TV sicher ist.
Zitat:
Wenn du schon mitunter aufschlußreiche Dinge von dir gibst was VB angeht
dann Informiere dich bitte vorher richtig als hier Dinge zu verbreiten welche ich so nicht stehen lassen kann.
Ich habe genügend VB Dinger zu etwas richtigen machen müssen, IOW: Ich kenne mich mit VB besser aus als ich will, und auf jeden Fall besser als die meisten VB'ler.
Zitat:
Zitat:
VB für sowas nutzen zu wollen, und diese fragile und instabile Lösung auch noch als "einfach" anstatt als "vereinfacht bis zum Grade der Nutzlosigkeit" zu bezeichnen kann auch nur einem VB'ler einfallen.
Du bist lustig mit dieser Methode verwalte und initialisiere ich meine Plugins
wie kannst du ohne internen Wissen so was behaupten.
Ich bin sehr wohl in der Lage bis zu 5 Standard und 1 Vis Plugin zur gleichen zeit laufen zu lassen.
Mehr habe ich leider nicht
Das heißt noch lange nicht dass man es wirklich so machen will.
Ich habe schon genügend Codes gesehen, die mir die Nackenhaare aufstehen ließen. Angeblich liefen die Programme auch problemlos. Nunja, bis sich mal etwas ändert, was defensive Programmierung abgefangen hätte.
In deinem Falle wäre es interessant zu wissen ob du eine binäre Delphi/C++/FPC DLL mit diesen Interfaces, OHNE COM Registrierung nutzen kannst. Und was passiert wenn du die VB "Klasse" nachträglich erweiterst?
Die bereits kompilierte DLL würde dir um die Ohren fliegen.
Zitat:
Aber wird langsam OffTopic das Thema hier
Jupp, habe das jetzt hier nur geantwortet, weil ich so verhindern wollte, dass irgendjemand auf die Idee kommt tatsächlich VB für sowas nutzen zu wollen.

willst du dich mehr auslassen, dann schicke mir ein PN.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: Klassen in DLL

  Alt 21. Sep 2008, 19:35
Zitat:
Du kannst also in VB Funktionen in einer fest definierten Calling convention exportieren, die du per LoadLibary/GetProcAdress ausführen kannst?
Ist das wirklich was du hier behaupten willst? Denn wenn es das nicht ist, dann bringe besser nicht den Mond ins Spiel.
Verlass dich drauf..

Mußte das noch los werden . hihiihih

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Klassen in DLL

  Alt 21. Sep 2008, 19:36
Zitat von Elvis:
willst du dich mehr auslassen, dann schicke mir ein PN.
Oder als neuen Thread, ist ganz interessant
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Klassen in DLL

  Alt 22. Sep 2008, 14:18
von hier:
Zitat von EWeiss:
...

Korrekt
Darum ging es aber auch nicht sondern darum ob ich standard DLL's erstellen kann.
Also kann man das hier gar nicht vergleichen? Wir reden hier über ein Interface ohne COM, wie ich ja schon oben schrieb.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: Klassen in DLL

  Alt 22. Sep 2008, 14:23
Zitat von sirius:
von hier:
Zitat von EWeiss:
...

Korrekt
Darum ging es aber auch nicht sondern darum ob ich standard DLL's erstellen kann.
Also kann man das hier gar nicht vergleichen? Wir reden hier über ein Interface ohne COM, wie ich ja schon oben schrieb.
Nein kann man nicht.. da hat sich bei dem hin und her ein mißverständins eingeschlichen.

Sorry..

gruss Emil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz