Hallo Rainer,
holla die Waldfee :s Nungut dann versuche ich das mal zu erklären.
Also als erstes erstellen wir mal unsere Standard EXE!
Erstelle dazu ein neues Project, dazu eine Form (Form1). Darauf 2 Buttons (Command1 und Command1)
In dem Project Eigenschaften, geben wir dem Project einen eindeutigen Namen. Nennen wir ihn HelloWorld
Kopiere dann folgenden Source in die Form
Option Explicit
Private Sub Command1\_Click()
MsgBox "Hello World"
End Sub
Private Sub Command2\_Click()
Unload Me
End Sub
Wie du siehst, macht das Dinge nichts besonderes. Beim KLick auf Command1 bekommst du eine MSGBox und bei Klick auf Command2 beendet sich die Exe.
Ist ja nur zu Testzwecken!
So nun möchten wir das ganze Teil mal umwandeln in eine Activex DLL.
Mache dazu folgendes!
- Erstelle ein Modul
- In dem Modul erstelle eine Sub Main
- In den Project Eigenschaften, stelle ein das das Project in der Sub Main startet
Normal macht man das ja auch so.
Schritt 2 und Schritt 3 koennen entfallen, aber dann würde der Aufruf anders ausschauen. Aber mehr dazu später!
In der Sub Main ( im Modul) schreiben wir folgendes
'Code Module1
Option Explicit
Sub main()
Form1.Show
End Sub
-
Wir schauen ob das Progg noch läuft
* JA -> Alles OK, weiter im Schritt 5
’ Nein -> Da hast irgendwas falsch gemacht :s
-
Wir gehen wieder zu den Project Eigenschaften und stellen dort folgendes ein!
* Project Type -> ActiveX DLL
* StartUp Object -> None
-
Wir fügen ein Klassenmodul hinzu und eben in ein einschlaegigen Name. Nennen wir die Klasse mal Test
-
Wir stellen je nach Bedarf die Instancing Eigenschaft ein. Zum testen, stellen wir sie auf 6 ( Global MultiUse)
-
Nun kopieren wir folgenden Source in das Klassenmodul
Option Explicit
Public Sub ExeStart() ’ Diese Sub muessen wir später aufrufen
Call main ’ Die Sub Main in Module1 wird aufgerufen.
'Alternativ koenntest du hier auch Form1.Show schreiben
'Da hatte ich oben geschrieben, das wenn man keine Sub Main brauch 
End Sub
-
So das sollte es schon gewesen sein. Nun speichern wir das ganze Project ab 
-
Wir compilieren es und erstellen uns die Activex DLL
Bei mir geht das unter File -> Make HelloWorld.Dll
-
Nun haben wir die gewuenschte Dll 
-
Wir erstellen nun ein neues Project ( Standard EXE)
-
Zum Testen reicht eine Form mit 2 Buttons ( Command1 und Command2)
14.wir setzen nun ein Verweis auf die DLL!
15: Kopiere folgenden Source in die Form
Option Explicit
Private Sub Command1\_Click()
Dim X As New HelloWorld.Test
Call X.ExeStart
End Sub
Private Sub Command2\_Click()
Unload Me
End Sub
So, dann probiere das mal aus und gebe Bescheid ob alles geklappt hat!
Sollte dir etwas unklar sein, so gebe einfach Bescheid 
MfG Alex