Eigene Libs in lotus script nutzen

  • Hallo zusammen,


    gibt es eine möglichkeit eigene C \ C++ \ C# \ .Net Libraries in Lotus Scirpt zu nutzen?


    Wenn ja habt ihr vielleicht einen kurzen hinweis wie oder wo ich eine Anleitung finde?


    vielen Dank im voraus.


    MfG Stefan

  • OK das war klar, vielleicht falsch ausgedrückt :)


    In eine db einbinden, damit Sie jeder nutzen kann ohne das Sie auf jedem rechner vorhanden sein muss?!


    Und noch ein Problem.
    Habe eine Dll in C:\Ordern\name.dll liegen.


    Wenn ich jetzt
    Declare Function funcName Lib "C:\Ordern\name.dll" (Byval a As Integer, Byval b As Integer) As Integer
    in den Declarations-Bereich schreibe und die Funktion nutzen möchte sagt mir not "Error on loading dll"


    Dank für deine Hilfe

  • OK er hat die dll (vb .net) gefunden sagt nun aber "External Function not found".
    Diese ist aber definitiv drin und auch als public gekennzeichnet.


    Das macht keinen Spass :)

  • Habs jetzt mal mit einer sample dll probiert


    .Net Code :


    Public Class Class1

    Public Function ADD(ByVal first As Integer, ByVal sec As Integer) As Integer


    Dim abc As Integer
    abc = first + sec
    Return abc
    End Function


    End Class


    Mein Aufruf :


    Declarations :
    Declare Function ADD Lib "c:\dll\MyDLL.dll" (Byval a As Integer, Byval b As Integer) As Integer


    Click :
    Print ADD(3, 4)


    Ich denke so sollte es gehen

  • Hallo,


    habe noch ein wenig gesucht und gelesen, dass Classes als "Shared assembly" erstellt werden müssen um Sie in notes nutzen zu können.


    Egal ob C# oder .net.
    Vielleicht nicht ganz passend an dieser Stelle,doch hat das schon mal jemand gemacht?
    So richtig funktioniert es nicht wie ibm beschreibt, da die Kommandozeilen-befehle nicht erkannt werden.


    http://www-01.ibm.com/support/…-8&lang=en&rss=ct463lotus


    Danke im voraus


    MfG Stefan

  • Hab 2 Projekte auf 2 wegen erstellt.


    Einmal über die Command-Prompt aus dem Start-Menü (dort findet er auch die Befehle, anders als in der VS-Kommandozeile) erstellt.
    Zum Anderen über Visual Studio, in den Projekt-Eigenschaften die Key-File hinzugefügt und die Prjektmappe erstellt.


    Bin also 2 wegen gegangen, doch er sagt immernoch "External Function not found".
    In anderes VS Projekte kann ich die Funktion nutzen.


    Muss man in LN noch irgendetwas definieren oder Pfade als Speicherort für dll freigeben?


    Die Datei scheint er ja zu finden nur die Funktion nicht.


    MfG und Dank für eure Geduld.
    Stefan

  • Ja, hab ich.
    Nur den Schritt mit der AssemblyInfo.cs konnt ich nicht machen, da die Datei nicht vorhanden war bzw. ist.


    Aber das ist nur notwendig, wenn ich die Klasse für COM zugriffe aus anderen Anwendungen zur Verfügung stellen möchte.


    Ich will ja einen direkten Zugriff auf die dll.

  • Dann muss die Funktion in einer Exporttable vorhanden sein.
    Dafür gibt es dann entsprechende Viewer wo du das prüfen kannst, z.B. hier


    Prüf doch mal damit nach ob und wie die Funktionen exportiert werden.
    Wird sie hier nicht korrekt angezeigt kann sie auch nicht von LotusScript per Declare benutzt werden

  • Vielen Dank, wie sich zeigt ist die Funktion nicht sichtbar.
    Werde mal schauen ob ich noch etwas finde.


    Vielen Dank erst einmal für deine Hilfe.


    Wenn ich den "Fehler" gefunden habe werde ich es mitteilen woran es gelegen hat.

  • Hallo zusammen,


    für jeden den es interssiert, hier die Lösung des Problems.
    Es ist in .Net nicht möglich, so wie in C Win32Dll's zu erstellen, die dann von anderen Sprachen verwendet werden können.


    Grund dafür ist, dass .Net Code beim Kompilieren erst in eine Zwischenprache übersetzt wird und erst beim Verwenden durch den Just-In-Time Compiler in die Maschinensprache übersetzt wird.


    Mit .Net ist es nur möglich Assemblies zu schreiben, die dann per COM verwendet werden können.


    Vielen Dank an Alle, die sich gedanken gemacht und versucht haben zu helfen.


    MfG Stefan