kahaii
Goto Top

COM Object in Lotus Notes Script deklarieren

Hallo,

ich habe ein Problem mit der Benutzung einer DLL in Lotus Notes Script auf
einem Win. 2008 Server R2 64 Bit.

Die DLL wurde im .net Visual Studio erstellt.
Die Einstellung "Assambly COM-sichtbar machen" wurde in den
Projekteigenschaften gesetzt.

Die Library wurde mit
c:\windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe DLLname.dll /CODEBASE /tlb:DLLName.tlb
registriert

Im Lotus Notes Script wurde die Variable mit
Dim glMyDec as Variant deklariert
und versucht, mit
Set glMyDec = createObject("DLLName")
das Objekt zu erstellen.
Leider kam die Fehlermeldung
"cannot create automation object"

Ich habe dann gelesen, das die Variable nicht als Variant, sondern
als das spezifische Objekt "DLLname" deklariert werden kann, quasi als

Dim session As DLLName
Set session = New DLLName

das DLLName taucht aber nicht in der Auswahlliste auf.

Gibt es im Lotus Notes Designer die Möglichkeit, Libraries wie
in Visual Studio als Verweis einzubinden und zu nutzen?

Hat jemand eine Lösung?

Lotus Notes Version ist die 8.5.2

Besten Dank im vorraus.

mfg.

Kai Zimmermann

Content-Key: 195420

Url: https://administrator.de/contentid/195420

Ausgedruckt am: 28.03.2024 um 08:03 Uhr

Mitglied: AndreasHoster
AndreasHoster 05.12.2012 um 17:04:52 Uhr
Goto Top
Ja und Nein.
Die Variante mit CreateObject funktioniert mit COM Objekten, nur der Name ist nicht der DLL Name, sondern der COM Objekt Name.
Beispiel: Um das COM Objekt Scripting.FileSystemObject aus der DLL scrrun.dll zu bekommen lautet der Aufruf eben CreateObject("Scripting.FileSystemObject") und nicht CreateObject("scrrun.dll")

Und ich verwende immer die CreateObject Variante.

Man kann auch noch Funktionen aus nicht COM Dlls aufrufen, daß ist aber etwas umständlich.
Beispiel der memcpy Funktion aus der msvcrt.dll:
Declare Function ReadInteger Lib "MSVCRT" Alias "memcpy" ( N As Integer, ByVal P As Long, ByVal B As Long) As Long

Danach kann man die Funktion benutzen, man muß nur mit den Datentypen aufpassen.