LRESULT
La definizione di tipo LRESULT viene visualizzata in mcadincl.h. MyCFunction è il codice che esegue la funzione personalizzata. A questa funzione vengono passati gli argomenti di PTC Mathcad e un puntatore a un valore restituito. Il risultato del calcolo viene inserito nel valore restituito.
LRESULT MyCFunction(returnValue, argument1,...)
void * const returnValue;
const void * const argument1;
...
Parametro
Descrizione
returnValue
Punta a una struttura COMPLEXARRAY, COMPLEXSCALAR o MCSTRING in cui deve essere memorizzato il risultato della funzione.
Se si implementa una funzione personalizzata che restituisce uno scalare, returnValue è un puntatore a una struttura COMPLEXSCALAR, in base a quanto implementato dal costrutto LPCOMPLEXSCALAR.
argument1
Punta a una struttura COMPLEXARRAY, COMPLEXSCALAR o MCSTRING di sola lettura in cui viene memorizzato il primo argomento della funzione.
Se si implementa una funzione personalizzata che include uno scalare come primo argomento, argument1 è un puntatore a una struttura LPCCOMPLEXSCALAR.
...
Se si implementa una funzione personalizzata che include più di un argomento, MyCFunction includerà argomenti aggiuntivi, ognuno dei quali deve essere di uno dei tipi definiti in precedenza. Gli argomenti aggiuntivi saranno puntatori alle strutture di sola lettura in cui vengono memorizzati i dati per l'argomento della funzione personalizzata corrispondente.
Requisiti per i parametri
Gli array e gli scalari che è possibile passare all'interno e all'esterno di un file DLL sono sempre complessi e gli array sono sempre bidimensionali. È possibile accedere alle parti reale e complessa di qualsiasi valore di input scalare utilizzando i membri ParamName->real e ParamName->imag. Analogamente, è possibile accedere alle parti reale e complessa di qualsiasi array di input utilizzando i membri Array->hReal e Array->hImag. Gli array vengono indicizzati per colonna e quindi per riga, al contrario dell'ordine degli indici all'interno di PTC Mathcad, che è prima per riga e quindi per colonna. Si presuppone che tutti gli array abbiano due dimensioni. Per fare riferimento a un vettore, impostare il primo indice dell'array (colonna) su 0, ad esempio:
ArrayName->hReal[0][row] o
ArrayName->hImag[0][row]
Valore restituito
MyCFunction restituisce 0 per indicare una restituzione senza errori. Per indicare un errore, MyCFunction restituisce un codice di errore nella parola inferiore della definizione LRESULT restituita e nella parola superiore restituisce il numero dell'argomento in cui deve essere inserita la finestra di errore. Se la parola superiore è zero, la finestra del messaggio di errore viene inserita nella funzione stessa.
Ulteriori informazioni
MyCFunction è un segnaposto per il nome di funzione fornito dalla libreria. È possibile scegliere qualsiasi nome per la funzione, ma è necessario registrare l'indirizzo del codice eseguibile in PTC Mathcad impostando il membro lpfnMyCFunction della struttura FUNCTIONINFO.
È stato utile?