Hallo Ihr Spezialisten,
ich habe kurzum wieder ein Problem bei dem ich keinerlei Lösung finden kann und ich hoffe Ihr könnt mir etwas helfen.
Folgende Problematik.
Eine unserer Fachabteilungen hat eine DLL via VB erstellt über die teilweise unserer Software funktioniert.
Wir hatten bis jetzt um die dll nutzen zu können ein Programm auch in Visual Basic erstellt. Das jetzige Ziel ist allerdings Macros direkt aus der VBA Schnittstelle in unserem Programm zu erstellen. Dabei stellen sich ein paar Probleme. 1. Ich kann auf Grund fehlender Admin Rechte die dll nicht ins Windows-System integrieren. Sprich Sie ist nicht in der Registry enthalten sondern liegt nur lokal in einem Ordner.
Um darauf zugreifen zu können wollte ich nun via Hardcode in VBA auf die DLL zugreifen. Dazu habe ich einfach jetzt mal einen Test zur DLL geschrieben und dessen Funktion darin.
Problem ist nun folgendes. Die DLL beinhaltet einen Aufbau in Klassen. Sprich Klasse1 hat Funktionen hinterlegt und Klasse2 wieder andere.
Ich bekomme es via VBA nicht hin die Funktionen innerhalb einer Klasse aufzurufen.
Auch die Alias Deklaration wie diese gehen nicht.
Andere DLL's welche direkt in der Registry enthalten sind gehen. Wer kann mir evtl. sagen wie ich auf Funktionen in Klassen zugreifen kann.
ich habe kurzum wieder ein Problem bei dem ich keinerlei Lösung finden kann und ich hoffe Ihr könnt mir etwas helfen.
Folgende Problematik.
Eine unserer Fachabteilungen hat eine DLL via VB erstellt über die teilweise unserer Software funktioniert.
Wir hatten bis jetzt um die dll nutzen zu können ein Programm auch in Visual Basic erstellt. Das jetzige Ziel ist allerdings Macros direkt aus der VBA Schnittstelle in unserem Programm zu erstellen. Dabei stellen sich ein paar Probleme. 1. Ich kann auf Grund fehlender Admin Rechte die dll nicht ins Windows-System integrieren. Sprich Sie ist nicht in der Registry enthalten sondern liegt nur lokal in einem Ordner.
Um darauf zugreifen zu können wollte ich nun via Hardcode in VBA auf die DLL zugreifen. Dazu habe ich einfach jetzt mal einen Test zur DLL geschrieben und dessen Funktion darin.
Visual Basic-Quellcode
- Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
- Declare PtrSafe Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
- Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
- Sub CATMain()
- '--------------------Test DLL Einbinden Classe finden
- Dim Msg As String
- Dim hLib As Boolean
- Dim pProc As Boolean
- hLib = LoadLibrary("c:\tmp\Debug\Meine.dll")
- If hLib = 0 Then Msg = "Keine passende DLL gefunden"
- If hLib <> 0 Then
- pProc = GetProcAddress(ByVal hLib, "Info")
- If pProc = 0 Then Msg = "Gewünschte Funktion wird nicht unterstützt!"
- FreeLibrary hLib
- End If
- MsgBox Msg
Problem ist nun folgendes. Die DLL beinhaltet einen Aufbau in Klassen. Sprich Klasse1 hat Funktionen hinterlegt und Klasse2 wieder andere.
Ich bekomme es via VBA nicht hin die Funktionen innerhalb einer Klasse aufzurufen.
Auch die Alias Deklaration wie diese gehen nicht.
Andere DLL's welche direkt in der Registry enthalten sind gehen. Wer kann mir evtl. sagen wie ich auf Funktionen in Klassen zugreifen kann.