Announcement

Collapse
No announcement yet.

Wie ist das mit den Typbibliotheken ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie ist das mit den Typbibliotheken ?

    Hallo,<BR>es gibt im Delphi den Menüpunkt Projekt - Typbibliothek importieren. Man kann dort aus einer Liste auswählen. Habe noch soviel rausbekommen, dass man mit "Hinzufügen" Dateien in der Registry registrieren kann, die man dann auch in der Liste hat. Wenn man nun einen Eintrag auswählt, kann man "installieren" oder "hinzufügen" machen. Bei "hinzufügen" wird eine .pas-datei erzeugt, die ich in meine uses nehmen kann. <BR>1. Jetzt ist aber die Frage ob ich <B>mit</B> meinem erstellten Programm die zuvor bei mir registrierte Datei (.dll, .ocx ..) zusätzlich ausliefern muss oder ob deren Inhalt in mein Projekt eincompiliert ist ? <BR>2. Falls ich sie mit ausliefern muss, muss ich sie dann bei der Programminstallation irgendwie in der Registry registrieren und wie ginge das, oder kann ich sie einfach in das Verzeichnis meines Programms stellen ?<BR>3. Wenn es eine Datei ist die im Betirebsystem vorhanden ist (konkret msxml3.dll), ist das dann schon ausreichend ?

    Danke im Voraus für eine Antwort <BR>Michael

  • #2
    Hallo,

    die binäre Typbibliothek hat prinzipiell zwei Aufgaben:

    1. Maschinenlesbare Veröffentlichung der Anschluss-Belegung (Interface) des Objekts

    2. Bauplan für den Betriebssystem-Marshaler, der zur Laufzeit im Arbeitsspeicher die Proxy- und Stub-Objekte zusammenbaut, damit "fremde" Programme gemeinsame Daten austauschen können.

    Somit ist die Typbibliothek immer nur ein "Zusatz", aber kein Ersatz für das COM-Objekt.

    zu Frage 1: Nein, die Implementierung des COM-Objekts wird nicht eingebunden. Man muss dafür sorgen, dass das COM-Objekt auch auf dem Zielrechner vorhanden ist.

    zu Frage 2: Das COM-Objekt muss registriert werden, wobei sich die Vorgehensweise davon unterscheidet, um welchen Objekttyp es sich handelt: <br>
    a) In-Process-Server (DLL) <br>
    b) Local-Server (EXE)<br>
    c) COM+<br>

    zu Frage 3: Ja, denn dann ist dieses COM-Objekt bereits registriert

    Comment


    • #3
      Hallo Herr Kosch,<BR>
      danke für die schnelle Antwort, könnten Sie mir vielleicht noch kurz zu Punkt 2.(Registrierung) je ein paar Stichworte zu den von Ihnen genannten 3 Objekttypen geben wie das vor sich gehen könnte.<BR>

      Danke<BR>

      Michael Bol

      Comment


      • #4
        Hallo,

        ein mit Delphi entwickelter Local-Server (EXE) lässt sich ganz einfach registrieren/deregistrieren, da hier ein Aufrufparameter ausreicht: <br>
        a) Registrieren: <i>TestServer.exe</i> <b>/REGSERVER</b> <br>
        b) De-Registrieren: <i>TestServer.exe</i> <b>/UNREGSERVER</b> <br>
        Der Schritt a) lässt sich vollständig einsparen, da Delphi bei jedem Start der EXE die Registrierung neu ablaufen lässt.

        Bei einer DLL (In-Process-Server) wird es komplizierter, hier stehen verschiede Wege zur Verfügung: <br>
        a) Windows-Zubehör <b>regsvr32.exe </b> <br>
        b) Delphi-Zubehör: <b>tregsrv.exe</b> <br>
        c) Installationsprogramm über den Versionsinfo-Eintrag <b>OLESelfRegister</b>

        Ein als COM+ implementieres COM-Objekt muss in den COM+ Catalog installiert werden, hier gibt es zwei Wege: <br>
        a) Wizards des Betriebssystems von Hand ausfüllen <br>
        b) COM+ Catalog über seinen Interfaces aus dem eigenen Programm heraus fernsteuern

        Comment

        Working...
        X