MLGetUCS2Function (C 関数)

MLGetUCS2FunctionWSGetUCS2Functionに置き換えられた.

int MLGetUSC2Function( MLINK l , const unsigned short ** s , int * v , int * n )

l が指定するMathLink接続からのUCS2のコード化形式でコード化された頭部として,記号を含む関数を得て,記号の名前を s に,UCS2コードの長さを v に,関数の引数の数を n に保存する.

詳細

  • MLGetUCS2Function()は,関数の頭部の名前に対応する文字列にメモリを割り当てる.このメモリを解放するためには,MLReleaseUCS2Symbol()を呼び出さなければならない.MLGetUCS2Function()が失敗し,関数の戻り値がエラーを示す場合には,s の内容に対してMLReleaseUCS2Symbol()を呼び出してはならない.
  • プログラムは,文字列 s の内容を変更してはならない.
  • MLGetUCS2Function(l, &s, &v, &n)は,MLGetNext(l); MLGetArgCount(l, &n); MLGetUCS2Symbol(l, &s, &i)と同じ効果がある.
  • MLGetUCS2Function()は,エラーがあった場合には0を返し,関数が成功した場合には非零の値を返す.
  • MLGetUCS2Function()が失敗した場合には,MLError()を使ってエラーコードを得るとよい.
  • MLGetUCS2Function()は,MathLinkヘッダファイルmathlink.hで宣言される.

例題

  (1)

#include "mathlink.h"

/* A function for reading a Mathematica function from a link */

void f(MLINK l)
{
    const unsigned short *s;
    int codes;
    int n;

    if(! MLGetUCS2Function(l, &s, &codes, &n))
    { /* Unable to read the function from the link */ }

    /* ... */

    MLReleaseUCS2Symbol(l, s, codes);
}