Autor Thema: Übergabe an eine Dll  (Gelesen 1464 mal)

Offline Bullpack

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
  • I am smiling
Übergabe an eine Dll
« 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    :'(
-----------------------------------------
Gestern war Heute noch Morgen
-----------------------------------------

Server R6.54 / W2k3
Client  R6.54 / WXP

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Übergabe an eine Dll
« Antwort #1 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Übergabe an eine Dll
« Antwort #2 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

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Übergabe an eine Dll
« Antwort #3 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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Bullpack

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
  • I am smiling
Re:Übergabe an eine Dll
« Antwort #4 am: 28.10.02 - 09:12:59 »
 ;D

Danke Vielmals!
Ich denke das sollte jetzt klappen !

THX!

BullPack
-----------------------------------------
Gestern war Heute noch Morgen
-----------------------------------------

Server R6.54 / W2k3
Client  R6.54 / WXP

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz