LRESULT
Die Typdefinition LRESULT wird in mcadincl.h angezeigt. MyCFunction ist der Code, der die angepasste Funktion ausführt. Dieser Funktion werden PTC Mathcad Argumente und ein Zeiger zu einem Rückgabewert übergeben. Sie fügt das Ergebnis der Berechnung in den Rückgabewert ein.
LRESULT MyCFunction(returnValue, argument1,...)
void * const returnValue;
const void * const argument1;
...
Parameter
|
Beschreibung
|
returnValue
|
Zeigt auf eine COMPLEXARRAY-, eine COMPLEXSCALAR- oder eine MCSTRING-Struktur, in der das Funktionsergebnis gespeichert werden soll.
Wenn Sie eine angepasste Funktion implementieren, die einen Skalar zurückgibt, ist returnValue ein Zeiger auf eine COMPLEXSCALAR-Struktur, entsprechend der Implementierung durch das Konstrukt LPCOMPLEXSCALAR.
|
argument1
|
Zeigt auf eine schreibgeschützte COMPLEXARRAY-, COMPLEXSCALAR- oder MCSTRING-Struktur, in der das erste Funktionsargument gespeichert wird.
Wenn Sie eine angepasste Funktion implementieren, die einen Skalar als erstes Argument besitzt, ist argument1 ein Zeiger auf eine LPCCOMPLEXSCALAR-Struktur.
|
...
|
Wenn Sie eine angepasste Funktion implementieren, die mehr als ein Argument hat, besitzt MyCFunction zusätzliche Argumente, von denen jedes einem der oben festgelegten Typen angehören muss. Die zusätzlichen Argumente sind Zeiger auf die schreibgeschützten Strukturen, in denen die Daten für das entsprechende Argument der angepassten Funktion gespeichert werden.
|
Parameteranforderungen
Die Arrays und Skalare, die Sie an eine und aus einer DLL-Datei übergeben können, sind stets komplex, und Arrays sind immer zwei dimensional. Sie können auf die reellen und komplexen Teile jedes Skalareingabewerts zugreifen, indem Sie die Mitglieder ParamName->real und ParamName->imag verwenden. Entsprechend können Sie auf die reellen und komplexen Teile jedes Eingabearrays zugreifen, indem Sie die Mitglieder Array->hReal und Array->hImag verwenden. Arrays werden nach der Spalte und dann nach der Zeile indiziert; bei Indizes in PTC Mathcad ist die Reihenfolge hingegen umgekehrt (erst nach Zeile, dann nach Spalte). Bei allen Arrays wird angenommen, dass sie zwei Dimensionen haben. Um einen Vektor zu referenzieren, legen Sie den ersten Arrayindex (Spalte) auf 0 fest, z.B.:
• ArrayName->hReal[0][row] oder
• ArrayName->hImag[0][row]
Rückgabewert
Wenn MyCFunction 0 zurückgibt, bedeutet dies, dass die Rückgabe fehlerfrei ist. Um einen Fehler anzuzeigen, gibt MyCFunction einen Fehlercode im niedrigen Wort des zurückgegebenen LRESULT zurück, und im hohen Wort wird die Nummer des Arguments zurückgegeben, unter dem das Fehlerfeld platziert werden soll. Wenn das hohe Wort den Wert null hat, wird das Fehlermeldungsfeld unter der Funktion selbst platziert.
Zusätzliche Informationen
MyCFunction ist ein Platzhalter für den von der Bibliothek bereitgestellten Funktionsnamen. Sie können jeden beliebigen Namen für Ihre Funktion wählen, Sie müssen jedoch die Adresse des ausführbaren Codes bei PTC Mathcad registrieren, indem Sie das Mitglied lpfnMyCFunction der Struktur FUNCTIONINFO festlegen.