Das Notes Forum

Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: Bullpack am 25.10.02 - 16:29:31

Titel: Übergabe an eine Dll
Beitrag von: Bullpack am 25.10.02 - 16:29:31
Hallo !

Ich habe unerwartete Probleme eine String Übergabe an eine Dll sauber umzusetzen!
Hat jemand von Euch Erfahrung in solchen Dingen ? Oder gibt es eine gute Onlinebeschreibung für solch ein Themengebiet ?

Hintergrund ist eine Anbindung an ein Archivsystem. Ich möchte aus Lotus Notes einige Parameter inclusive einer Datei (oder mehrerer) an eine Dll weitergeben, die eine Archivierung durchführt, und mir als Antwort einen Success Code und eine DokumentenID liefert.

Nur leider liefert mir die Dll (sie funktioniert in einem Simulierten C++ Umfeld tadellos !) nur Schrott.
Scheinbar liegt es an der Formatierung der Stringausgabe ...

Grüße

BullPack    :'(
Titel: Re:Übergabe an eine Dll
Beitrag von: eknori am 25.10.02 - 16:34:44
Normalerweise kommt sowas bei einer Typenunverträglichkeit zwischen DLL Prozedur und übergebenem Wert vor.
Prüfe noch mal, wie der Parameter in der DLL declariert ist.

eknori
Titel: Re:Übergabe an eine Dll
Beitrag von: Axel am 25.10.02 - 17:27:03
Hi,

Stringvariablen, die an ein DLL übergeben werden sollen, müssen meines Wissens mit fester Länge in Script deklariert werden.

Ich hab so was vor längerer Zeit mal mit einer DLL, die mit Delphi erstellt wurde, gemacht.

Ich kram' mal ein bisschen auf meiner Platte, vielleciht finde ich den LotusScript-Code noch.


Axel

Titel: Re:Übergabe an eine Dll
Beitrag von: Axel am 25.10.02 - 18:58:25
Hi,

ich bin fündig geworden. Hier die entsprechenden Stellen aus dem Code eines Agenten:

(Declaration)
Declare Function LieferungNeu Lib "Bestellung.dll"  (Byval Lieferant As String, Byval LNr As String, Byval LDatum As String, Byval Bemerkung As String)  As Integer


Initialize

...
Dim LNr As String * 20
Dim LDatum As String * 12
Dim Bemerkung As String * 100    
Dim Nummer As String * 10
Dim Position As String * 10
Dim Bezeichnung As String * 100
Dim Menge As String *10
Dim GMenge As String *10
Dim LMenge As String * 10
   
REM ** Initialisierung der Übergabevariablen für DLL**
Nummer = ""
Position = ""
Bezeichnung  = ""
Menge  = ""
GMenge  = ""
LMenge  = ""
LNr =  ""
LDatum = ""
Bemerkung = ""

...

REM ** Anlegen eines neuen Dokumentes (Lieferschein) und füllen der Felder **
res = LieferungNeu(Lieferant, LNr, LDatum, Bemerkung)  'Funktion aus DLL aufrufen.
If res = 0 Then
   Set newdoc = New NotesDocument(db)
   newdoc.Form = "Lieferungen"
   newdoc.LScheinNummer = Rtrim(LNr)
   newdoc.LDatum = Rtrim(LDatum)
   newdoc.LLieferant = Lieferant
   newdoc.LBemerkungen = Rtrim(Bemerkung)
   Call newdoc.Save(True, True)
Else
   Exit Sub
End If

...


Axel
Titel: Re:Übergabe an eine Dll
Beitrag von: Bullpack am 28.10.02 - 09:12:59
 ;D

Danke Vielmals!
Ich denke das sollte jetzt klappen !

THX!

BullPack