vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: erweiterbares VB6-Programm 
Autor: Blackbox
Datum: 10.10.10 21:58

Hallo Chris,

Wenn Du die ActiveX-EXE kompilierst, bekommst Du zwei neue Dateien. Eine ist für die Registrierung des neuen marshaling Objekts und die andere ist die Typelibrary, die die Clients von der Exe wissen müssen. Jeder Client setzt einen Verweis auf diese Typelib. Die andere Datei stellt die entsprechenden Informationen in die Registry ein. Die Exe darf die ActiveX-DLL's nicht einbinden! Sie sind ja nicht bekannt. Sie docken an die Exe an - nicht umgekehrt.

Die ActiveX-DLL's würde ich nur als Mittler zwischen der Server-EXE und dem eigentlichen Clienten nehmen, weil deren öffentliche Klasse ja auch justierbar ist. Die Server-EXE braucht diese DLL's nicht zu kennen, da eigentlich alle auf die gleiche, durch die EXE generierte TLB auf öffentliche Funktionen zugreifen. So kann man die Clients voneinander abschotten. Eine Standard-EXE (das wäre so ein Client) hat keine öffentliche Klasse um über marshaling mit Remote EXE's zu kommunizieren. Das brauchst Du aber, weil eine DLL über kein eigenes Startmodul verfügt. Du brauchst aber einen neuen Prozess. Damit eine Standard-EXE die Ihre DLL bindet und die hat über eine öffentliche Klasse connection zu deinem VB-Server.

Es ist sehr schwer ein ooP Design jemand per Foreneintrag verständlich zu machen. Ich kann nur einen Fingerzeig auf den Weg dahin machen.

Generell muss man wissen, dass nur öffentliche Klassen marshaling betreiben können. In VB wird eine Klasse öffentlich, wenn deren globalMultiuse-Attribut gesetzt ist.

Erwarte aber von marshaling keine Wunder. Der Mechanismus der dahinter steckt ist sehr komplex.

Anderst besagt:

Normalerweise zieht eine EXE eine dynamische Lib in seinen Prozessraum, oder zumindest eine Kopie davon, wenn die DLL schon läuft. Deren öffentliche Funktionen werden dann prozedural benutzt, als wäre die DLL bestandteil von dem Programm.

Das andere Modell ist nicht so trivial. Es existiert ein Prozess der in einem vernetzten Raum öffentlich Funktionen zur Verfügung stellt von denen Clients sich eine Instanz erzeugen und darüber kommunizieren können. Der Client holt sich zunächst eine CreateInstanze von diesem Objekt und erst dann kann es mit seinem Server austauschen. Es benötigt die CLSID des Conn-Objekts und dann die Schnittstelleninformationen. Während im ersten Beispiel sich die DLL in den Prozessraum spiegelt, macht das im zweiten Fall der Server niemals. Dieser Weg dann, der zur Prozesskommunikation führt, ist die Technik des Marshaling, die VB dazu explizit benützt.

Beitrag wurde zuletzt am 10.10.10 um 22:12:56 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
erweiterbares VB6-Programm3.289chris7109.10.10 16:28
Re: erweiterbares VB6-Programm2.574Blackbox09.10.10 17:13
Re: erweiterbares VB6-Programm2.540chris7110.10.10 17:43
Re: erweiterbares VB6-Programm2.479Blackbox10.10.10 18:18
Re: erweiterbares VB6-Programm2.512chris7110.10.10 21:07
Re: erweiterbares VB6-Programm2.452Blackbox10.10.10 21:58
Re: erweiterbares VB6-Programm2.429chris7110.10.10 22:53
Re: erweiterbares VB6-Programm2.422chris7110.10.10 23:38
Re: erweiterbares VB6-Programm2.593Dirk11.10.10 07:57
Re: erweiterbares VB6-Programm2.381Dirk11.10.10 08:30
Re: erweiterbares VB6-Programm2.415Dirk11.10.10 09:10
Re: erweiterbares VB6-Programm2.456wb-soft11.10.10 09:22
Re: erweiterbares VB6-Programm2.478Dirk11.10.10 09:35
Re: erweiterbares VB6-Programm2.382chris7111.10.10 19:37
Re: erweiterbares VB6-Programm2.386wb-soft11.10.10 19:47
Re: erweiterbares VB6-Programm2.387chris7111.10.10 19:52
Re: erweiterbares VB6-Programm2.421dj.tommy11.10.10 21:54
Re: erweiterbares VB6-Programm2.340wb-soft11.10.10 21:16
Re: erweiterbares VB6-Programm2.393chris7111.10.10 22:16
Re: erweiterbares VB6-Programm2.413chris7114.10.10 00:07
Re: erweiterbares VB6-Programm2.340chris7115.10.10 22:59
Re: erweiterbares VB6-Programm2.244CrazyDog17.12.10 11:03
Re: erweiterbares VB6-Programm2.200chris7118.12.10 18:54
Re: erweiterbares VB6-Programm2.266CrazyDog19.12.10 15:20
Re: erweiterbares VB6-Programm2.205chris7119.12.10 17:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel