Deklaration von Userfunktionen

Top  Previous  Next

Userfunktionen erhalten ihre Parameter wie ein C-Programm. Als Rückgabewert können entweder eine Ganze Zahl (16 Bit) oder ein String dienen.

long int EXPORTENTRY userfunktion (

     int         argc,

     char *      argv[]

);

argc ist die Anzahl der Parameter in argv.

argv ist ein Feld mit Strings, das die Parameter enthält. Bis auf die Separation in Parameter, die jeweils an einem Leerzeichen geschieht, sind diese nicht verändert worden. Auch Flags mit NAME/wert sind enthalten.

EXPORTENTRY sorgt dafür, dass die Prozedur in der DLL als Einstiegspunkt bereitgestellt wird. Weiter werden die Argumente auf dem Stack übergeben.

Der Rückgabewert long int ist ein Sonderfall. Wird hier ein Wert zwischen -32768 und 32767 übergeben, so ist dies eine Zahl. Der Wert 0 wird üblicherweise als OK, andere Werte als Fehlermeldungen interpretiert. Werte außerhalb dieses Bereichs dürfen nicht zurückgegeben werden. Weiterhin kann, nach einem Typcast, ein mit Malloc oder Calloc angelegter String beliebiger Länge zurückgegeben werden. Dieser String ist dann das Ergebnis dieser Funktion. Der Speicherplatz wird von Moskito automatisch freigegeben. Die Länge ist wirklich beliebig. Dies gilt für den Rückgabewert ebenso wie für die Parameterzahl und -länge.