Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: udo187 am 29.06.16 - 16:38:29

Titel: c# DLL in Notes verwenden
Beitrag von: udo187 am 29.06.16 - 16:38:29
Hallo!

Ich versuche gerade erfolglos, eine einfache (Test) DLL (erstellt mit  c#) in Notes einzubinden und aufzurufen.


Zu Testzwecken habe ich das gleiche mit einer Windows-DLL versucht, was problemlos funktioniert.

Funktionierendes Beispiel:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (Byval lpbuffer As String, nSize As Long) As Long
Den Windows Usernamen bekomme ich dann einfach mit RetUserName = GetUserName(lpUserName, nSize) zurück.

Das gleiche versuche ich nun mit der c# DLL die eine einfache Funktion enthält und mir den Wert zurückgeben sollte.
Die DLL habe ich ins Notes Verzeichnis kopiert bzw. habe ich den Pfad auch testweise mitangegeben.


Deklariert:
Declare Function test2 Lib "dlltest.dll" Alias "addUP" (Number1 As Double, Number2 As Double) As Double
Aufruf erfolgt durch:

Dim ret As Variant
Dim Number1 As Double
Dim Number2 As Double
   
Number1 = 5
Number2 = 20   

ret = test2 (Number1, Number2)


Ich bekomme immer die Meldung "External function not found"


Code c# im Anhang.


Bin für jeden Schubs dankbar!

Danke!
Udo
Titel: Re: c# DLL in Notes verwenden
Beitrag von: eknori am 29.06.16 - 19:39:11
Ich weiss nicht, wie es in c# gemacht wird, in C++ muss man die betreffende funktion als extern erklären bzw als export deklarieren.
Das public in deinem Code bezieht sich lediglich auf die Sichtbarkeit innerhalb der DLL.

Die Fehlermeldung deutet zumindest darauf hin, dass ein Export der funktion noch irgendwo angegeben werden muss.



Ah, guck mal hier https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports . da ist ein Beispiel

Und wenn du die Grundlagen im Griff hast, dann kannst du dich mich der verwendung der cAPI in c# beschäftigen

http://www.bobzblog.com/tuxedoguy.nsf/dx/calling-notes-capi-from-cvisual-studio?opendocument&comments
Titel: Re: c# DLL in Notes verwenden
Beitrag von: udo187 am 04.07.16 - 07:01:58
Danke für den Tipp @eknori!