AssignOutputVariable
a C gateway function which specifies which parameters created inside the C gateway will be returned as an output argument into Scilab.
Syntax
AssignOutputVariable(pvApiCtx, RankPos) = RankVar;
Arguments
- RankPos
as integer providing the rank of the output argument
- RankVar
the rank of the parameter created inside the C gateway to be returned as an Scilab output argument
Description
A C gateway function which specifies which variables created inside the C interface will be returned as an output argument into Scilab.
Examples
This example takes a matrix of doubles as input and returns:
the number of lines (first output argument)
the number of rows (second output argument)
We create an intermediate Scilab parameter which will handle an integer but will neither be used nor returned as an output argument.
#include "api_scilab.h" int sci_mysizedouble(char * fname, void* pvApiCtx) { SciErr sciErr; int m_in_row; int n_in_col; int* piAddr = NULL; double* pdblData = NULL; sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } /* get dimensions */ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &m_in_row, &n_in_col, &pdblData); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createMatrixOfInteger32(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 1, 1, &m_in_row); // the m_in_row parameter handles the number of lines of the matrix sent as argument sciErr = createMatrixOfInteger32(pvApiCtx, nbInputArgument(pvApiCtx) + 2, 1, 1, &m_in_row); // store a same value, but will neither be used nor returned to Scilab sciErr = createMatrixOfInteger32(pvApiCtx, nbInputArgument(pvApiCtx) + 3, 1, 1, &n_in_col); // the n_in_col parameter handles the number of columns of the matrix sent as argument AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; // We set the parameter "nbInputArgument(pvApiCtx) + 1" as an output argument AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 3; // We set the parameter "nbInputArgument(pvApiCtx) + 3" as an output argument ReturnArguments(pvApiCtx); return 0; }
Report an issue | ||
<< Low level functions | Low level functions | CallOverloadFunction >> |