Einzelnen Beitrag anzeigen

Benutzerbild von DXler
DXler

Registriert seit: 5. Nov 2003
53 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Übergabe eines CStrings in Delphi an eine DLL-Funktion

  Alt 7. Okt 2004, 11:33
Zitat:
Zitat von DXler:
Die Karte zu initialisieren haben wir bereits geschafft. Als nächster Schritt muß jetzt allerdings die Firmware der Karte geladen werden. Dies geschieht über eine Funktion die in einer DLL integriert ist (wie alle weiteren Funktionen auch). Um auf die Funktionen zuzugreifen, müssen die Funktionen in einer Klasse eingebettet sein (was kein Problem ist).
Wie denn das?
Also: zuerst ruft man eine Funktion auf die dafür sorgt, das die DLL initialisiert wird. Wenn das geschehen ist, kann man auf die einzelnen Funktionen zugreifen.


Zugriff auf die Funktionen der DLL:

Die Funktionen der DLL sind in einzelne Bereiche aufgeteilt. Da gibt es z. B. einen Bereich der sich allgemein mit dem Board befasst. Ein weiterer ist für den Frontend (Betriebssystem) zuständig. Wieder ein anderer für ein angeschlossenes CI (Common Interface = dient der Entschlüsselung von PayTV-Programmen über eine Abo-Karte).

Diese einzelnen Bereiche werden über eine Klasse angesprochen. Vereinfacht ausgedrückt:

Es soll z. B. die Version des Frontends ausgegeben werden. Diese Funktion hat beispielsweise den Namen "FrontendVersion". Die Klasse heißt z. B. "NexusFrontend".

Dann ergibt sich daraus folgendes: NexusFrontend.FrontendVersion

Durch die Splittung der Funktionen in Bereiche wird das Ganze übersichtlicher und man weiß sofort, wo welche Funktion hingehört bzw. kann anhand der Klasse sehen, für welchen Bereich der Karte sie zuständig ist.

Was wir nun gemacht haben: wir haben von jedem Bereich eine Klasse erstellt (abgeleitet von TObject) und die dazugehörigen Funktionen als "Public" deklariert.

Das hab ich (in Kurzform) damit gemeint.

Zitat:
Zitat von DXler:
Hier ist nun die entsprechende C++-Funktion die die Firmware auf die Karte überträgt (der genaue Funktionsname ist geändert, damit wir nicht gegen die Lizenzbestimmung von TechnoTrend verstoßen):
Was sind denn das fuer Idioten (sowohl in Lizenz als auch in API)?
Habt ihr ein NDA unterschrieben?
Was die Leute bei TechnoTrend genau sind, kann ich nicht sagen (und da werd ich mich auch nicht zu äußern). Jedenfalls sind es die einzigen, die meines Wissens Programmierern überhaupt Hilfe geben! Andere Kartenhersteller lassen alles "closed" und geben keine Infos heraus.

Das "Lizenzabkommen" von TechnoTrend gibt es hier.
  Mit Zitat antworten Zitat