Announcement

Collapse
No announcement yet.

Delphi-DLL in Lotus Notes

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi-DLL in Lotus Notes

    Hallo,

    möchte eine Delphi-DLL in Notes einbinden.
    die Strings bekommt, weterverarbeitet und andere strings zurückgibt.

    Deklaration in C würde so aussehen:
    int Archive(char *FN, char *DocID)

    In Delphi sollte das dann doch so aussehen, oder:
    Function Archive(FN: PChar; out DocID: PChar):long;

    Bekomme aber nur Datenmüll in DocID zurück.

    Deklaration in Lotus notes sieht so aus:
    Declare Function Archive lib "arc.dll" (byval FN as string, byval docid as string) as long

    Laut Lotesnotes-Doku muss ich auch einen Rückgabeparameter als byval deklarieren. das kann also nicht der Fehler sein.

    Bitte um Hilfe.

  • #2
    function Archive(FN: PChar; DocID: PChar): Integer; stdcall;<br>
    <br>
    Out ist nicht noetig. long und Integer sind das selbe, aber Integer ist hat der Delphi-Typ.<br>
    Der Knackpunkt ist die Calling Convention. Da du nichts angegeben hast, erwartet deine Funktion die Parameter in registern, waehrend Lotus Notes sie auf den Stack legt. Mit stdcall erwartet deine Funktion die Parameter dann auch auf dem Stack.<br>
    Es koennte aber auch statt stdcall cdecl sein. Der Unterschied zwischen stdcall und cdecl ist, das bei stdcall die aufgerufene Funktion die Parameter vom Stack entfernt, waehrend bei cdecl die aufrufende Funktion abraeumen muss

    Comment

    Working...
    X