vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

Visual-Basic Einsteiger
Re: Win32-Dll mit VB6 erstellen 
Autor: Blackbox
Datum: 09.12.12 10:32

Hi,

Da deine lieben Admins Eure PC's also so zugenagelt haben, dass sich nicht mal Dll's selbst registrieren können, so hier die ultimative Lösung.
Weil ja Nicolaus war, habe ich eine gute Tat vollbracht und einen universellen COM-Loader geschrieben, der es ermöglicht, COM-Objecte aus Dateien zu erzeugen. Die Dateien wären zB in VB geschriebene ActiveX.dll's. Die Funktion selbst habe ich in eine native DLL verpackt namens: GetCOMObject.dll.

Die habe ich als Download zur Verfügung gestellt, hier:

http://www.file-upload.net/download-6904961/GetCOMObject.dll.html

Zum Download: Den ganz kleinen Downloadbutton verwenden, sonst lädt man den Download-Manger herunter, der tuts nicht. Die Datei heißt:

GetCOMObject.DLL

und ist 16 kB groß - mehr nicht.

Die DLL hat nur eine einzige Funktion. Hier die Deklaration für VB:



Private Declare Function GetVBDllObject Lib _
  "Dein_Pfad_zur_Dll\GetComObject.dll" ( _
    ByVal sFile As String, _
    ByVal sCLSID As String, _
    ppV As Any) As Long
GetVBDllObject

sFile: Pfad und Namen der ActiveX.dll
sCLSID: CLSID der von der ActiveX.dll exportierten Klasse in der Form:

(Beispiel) : "{453C54F1-2535-4C28-B86A-14E8541309C4}"

ppV: Ist die Objektvariable. Die Dll gibt die IDispatch-Schnittstelle zurück, womit
andere Compiler über late Binding mit der Objektinstanz arbeiten können.

Wenn man in VB eine ActiveX.dll erstellt hat, so kommt man mit einem COM-Viewer, Ole-View zum
Beispiel, an die CLSID, in dem man die ActiveX.dll in den Viewer lädt und der Viewer dann
die Typelib der Dll auslesen kann (ActiveX.dll's schleppen diese meist in den Resourcen mit).

Und zum Schluß noch ein Anwendungsbeispiel:

Eine Mini-Active.X.dll, die öffentliche Klasse wurde DllObject genannt und zwei Methoden:

Public Function GetA() As Long
    GetA = 10
End Function
 
Public Function MakeNr(ByVal a As Long, ByVal b As Long) As Long
    MakeNr = a + b
End Function
Als MyMath.dll kompiliert

In VB dann:

Private Declare Function GetVBDllObject Lib "D:\ActDllTest\GetComObject.dll" ( _
    ByVal sFile As String, _
    ByVal sCLSID As String, _
    ppV As Any) As Long
 
Private Sub Form_Load()
    Dim o As Object
    Dim rval As Long
    Dim clsid As String
 
    clsid = "{453C54F1-2535-4C28-B86A-14E8541309C4}"
    rval = GetVBDllObject("D:\ActDllTest\MyMath.dll", clsid, o)
 
    MsgBox o.MakeNr(11, 14)
 
End Sub
Reicht mindestens dazu, bis deine Test's abgeschlossen sind und dann die ActiveX.dll
ordentlich durch die Admins registriert werden kann - oder auch nicht.

GetVBDllObject gibt S_OK zurück, wenn der Aufruf geklappt hat, ansonst E_NOTIMPL.
Die Konstante für S_OK ist 0. E_NOTIMPL ist also ungleich 0.

Beitrag wurde zuletzt am 09.12.12 um 11:03:03 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Win32-Dll mit VB6 erstellen4.178aistudy26.11.12 10:45
Re: Win32-Dll mit VB6 erstellen2.685aistudy26.11.12 11:38
Re: Win32-Dll mit VB6 erstellen2.693wb-soft26.11.12 12:04
Re: Win32-Dll mit VB6 erstellen2.635aistudy26.11.12 14:20
Re: Win32-Dll mit VB6 erstellen2.708Manfred X26.11.12 18:37
Re: Win32-Dll mit VB6 erstellen2.645aistudy26.11.12 20:33
Re: Win32-Dll mit VB6 erstellen2.821Blackbox26.11.12 20:40
Re: Win32-Dll mit VB6 erstellen2.657aistudy27.11.12 16:40
Re: Win32-Dll mit VB6 erstellen2.689Blackbox28.11.12 18:28
Re: Win32-Dll mit VB6 erstellen2.612aistudy28.11.12 19:20
Re: Win32-Dll mit VB6 erstellen2.587Blackbox28.11.12 20:07
Re: Win32-Dll mit VB6 erstellen2.695aistudy28.11.12 20:58
Re: Win32-Dll mit VB6 erstellen2.583aistudy03.12.12 13:57
Re: Win32-Dll mit VB6 erstellen2.810Blackbox03.12.12 20:02
Re: Win32-Dll mit VB6 erstellen2.561aistudy03.12.12 20:21
Re: Win32-Dll mit VB6 erstellen2.524Franki08.12.12 04:17
Re: Win32-Dll mit VB6 erstellen2.559aistudy08.12.12 10:14
Re: Win32-Dll mit VB6 erstellen2.721Blackbox09.12.12 10:32
Wie findet man eine CLSID aus einer ActiveX.dll2.649Blackbox09.12.12 11:11
Re: Win32-Dll mit VB6 erstellen2.551aistudy09.12.12 11:36
Re: Win32-Dll mit VB6 erstellen2.583Blackbox09.12.12 18:09
Re: Win32-Dll mit VB6 erstellen2.583aistudy11.12.12 10:49
Re: Win32-Dll mit VB6 erstellen2.747Blackbox11.12.12 18:23
Re: Win32-Dll mit VB6 erstellen2.549aistudy11.12.12 18:33
Re: Win32-Dll mit VB6 erstellen2.625Blackbox11.12.12 19:13

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