getCppKenntnisse() Geschrieben 26. März 2011 Teilen Geschrieben 26. März 2011 Hallo Comm., leider ist es ja nicht möglich Funktionen aus DLL-Dateien zu deklarieren. Ich habe aber gelesen, dass es möglich ist sich ein ActiveX-Control zu schreiben, dort die DLL-Funktion zu deklarieren und dann von vbscript aus diese Funktion aus dem activeX-Control aufzurufen. kann mir vllt. jmd. ein Beispiel posten wie man Funktionen aus einem "nonvisible activeX-Control" aufruft? (das control dann zu schreiben dürfte ja kein Problem sein.) mfg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
getCppKenntnisse() Geschrieben 27. März 2011 Autor Teilen Geschrieben 27. März 2011 Hi, habs jetzt übers Wochenende rausgefunden... im nachhinein ganz einfach Für alle die mal sowas suchen: 1. COM Klasse erstellen, z.B. <ComClass(MyTestClass.ClassId, MyTestClass.InterfaceId, MyTestClass.EventsId)> _ Public Class MyTestClass #Region "COM-GUIDs" Public Const ClassId As String = "0d3d0928-b502-4eec-bd34-0aeae9044116" Public Const InterfaceId As String = "5eb12215-d9d1-4816-8460-f993ef9bc7b9" Public Const EventsId As String = "0319b2d6-2149-4e19-a3ad-f3de40e7184f" #End Region #Region "Dll-Funktionen" Private Declare Function Beep Lib "kernel32.dll" ( _ ByVal dwFreq As Long, _ ByVal dwDuration As Long) As Long #End Region Public Sub New() MyBase.New() End Sub Public Function MyBeep(Optional ByVal freq As Long = 440, Optional ByVal duration As Long = 1000) Beep(freq, duration) Return Nothing End Function Public Function multipliziere(ByVal zahl1 As Integer, ByVal zahl2 As Integer) As Long multipliziere = zahl1 * zahl2 End Function End Class 2. Project builden. 3. dll - registrieren, mit RegAsm.exe C:\WINDOWS\Microsoft.NET\Framework\v2.x.x>RegAsm.exe "[Pfad]" 4. Aufruf in vbScript: Set obj = CreateObject("MyActiveXControl.MyTestClass") obj.MyBeep MsgBox obj.multipliziere(13, 37) Set obj = Nothing Nur noch als Hinweis, der Name ActiveX-Control ist hier eigtl. falsch - wie ich mittlerweile weiß - wenn überhaupt handelt es sich um eine ActiveX - DLL. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.