<< Inhaltsverzeichnis Suchen >>

CALL  _ _DLLFUNCTION

Anweisung

Syntax:

CALL  _ _DLLFUNCTION(<DLL-NAME>,<DLL-FUNKTION>,
                                               <PARAMETER-TYPEN>,
                                               <RETURN-CODE>[,<VARIABLE>]...)

<DLL-NAME>                                 = <STRING-AUSDRUCK>
<DLL-FUNKTION>                        = <STRING-AUSDRUCK>
<PARAMETER-TYPEN>               = <STRING-AUSDRUCK>
<RETURN-CODE>                         = <STRING-VARIABLE>               oder
                                                              <NUM-VARIABLE>                    oder
                                                              <NUM-VARIABLE>%
<VARIABLE>                                  = <STRING-VARIABLE>               oder
                                                              <NUM-VARIABLE>                    oder
                                                              <NUM-VARIABLE>%

 

Bedeutung:

Ruft unter WINDOWS eine Funktion aus einer DLL auf.

<DLL-DATEI> enthält den Namen der DLL und <DLL-FUNKTION> den Namen der DLL-Funktion, die aufgerufen werden soll.

Die Anzahl und Typen der an die DLL-Funktion zu übergebenden Parameter werden durch <PARAMETER-TYPEN> festgelegt. Für jeden Parameter muß ein Zeichen (bei Pointern 2 Zeichen) angegeben werden. Der erste Eintrag kennzeichnet den Parametertyp von <RETURN-CODE>, die folgenden Einträge kennzeichnen die einzelnen Parameter <VARIABLE>.

Für jeden einzelnen Parameter der Funktion muß eine entsprechende Variable angegeben werden, die den zu übergebenden Wert enthält. Liefert die DLL-Funktion in einem Parameter einen Rückgabewert, so enthält nach dem Aufruf der Funktion die zugehörige Variable den Rückgabewert.

Es gilt folgende Zuordnung:

 

 

Zeichen

Bedeutung

EBUS-Variable

 

 

S
C
I
L
U
V
D
F
&I
&L
&U
&V
&D
&F

char *                   (String)
char                      (Einzelzeichen)
int                         (Integer)
long                      (Long Integer)
unsigned int         (Unsigned Integer)
unsigned long      (Unsigned Long)
double                  (Gleitkomma)
float                      (Gleitkomma)
int *                      (Pointer Integer)
long *                   (Pointer Long)
unsigned int *      (Pointer Unsigned Integer)
unsigned long *   (Pointer Unsigned Long)
double *                              (Pointer Gleitkomma)
float *                  (Pointer Gleitkomma)

<STRING>
<STRING>
<NUM>%
<NUM>%
<NUM>%
<NUM>%
<NUM>
<NUM>
<NUM>%
<NUM>%
<NUM>%
<NUM>%
<NUM>
<NUM>

 

 

 

 

Achtung: Auch für Pointer ist nur die <VARIABLE> ohne ein vorhergehendes '&' anzugeben.

 

 

 

 

 

 

 

Nach dem erfolgreichen Aufruf der <DLL-FUNKTION> enthält <RETURN-CODE> den Rückgabewert der Funktion. <RETURN-CODE> muß dem Typ der DLL-Funktion entsprechen, andernfalls können Fehler auftreten.

Konnte die DLL-Funktion aufgerufen werden, so enthält nach der Anweisung CALL  _ _DLLFUNCTION die Variable OK den Wert 0. Im Fehlerfall liefert OK folgende Werte:

               OK         Bedeutung
               -1           DLL-Datei nicht gefunden
               -2           Funktion in DLL-Datei nicht gefunden
               -4           ungültiges Zeichen in <PARAMETER-TYPEN>
               -5           Die Anzahl der in <PARAMETER-TYPEN> definierten
                              Parameter stimmt nicht mit der Anzahl der übergebenen
                              Parameter überein.
               -6           Parameter in <PARAMETER-TYPEN> ist numerisch und
                              der übergebene Parameter ist nicht numerisch oder
                              umgekehrt.

 

Beispiel:

L1% = 0
TRENN$ = ";"
H1$ = "C:\DAT1.TXT;C:\DAT2.TXT"
H2$ = "DAT1.TXT;DAT2.TXT"
L2% = 0
CALL  __DLLFUNCTION("MAPI.DLL",
                              "MAPISendDocuments",
                              "IVSSSV",
                              RETURNCODE%,
                              L1%,
                              TRENN$,
                              H1$,
                              H2$,
                              L2%)

IF OK <> 0
THEN /* Fehler: DLL-Funktion wurde nicht ausgeführt
ELSE /* RETURNCODE% enthält den Rückgabewert der DLL-Funktion
ENDIF