MLGetUTF16Function (C 函数)

MLGetUTF16Function 已经被 WSGetUTF16Function 所取代.

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

gets a function with a symbol as a head encoded in the UTF-16 encoding form from the MathLink connection specified by l, storing the name of the symbol in s, the length of the UTF-16 codes in v, and the number of arguments to the function in n.

更多信息

  • MLGetUTF16Function() allocates memory for the character string corresponding to the name of the head of the function. You must call MLReleaseUTF16Symbol() to disown this memory. If MLGetUTF16Function() fails and the function's return value indicates an error, do not call MLReleaseUTF16Symbol() on the contents of s.
  • Programs should not modify the contents of the character string s.
  • The character string returned by MLGetUTF16Function() begins with a platform appropriate byte order mark. This byte order mark is included in the length value v.
  • WLGetUTF16Function(l, &s, &v, &n) has the same effect as WLGetNext(l); MLGetArgCount(l, &n); MLGetUTF16Symbol(l, &s, &v, &c), where c is the number of characters encoded in s.
  • MLGetUTF16Function() returns 0 in the event of an error, and a nonzero value if the function succeeds.
  • Use MLError() to retrieve the error code if MLGetUTF16Function() fails.
  • MLGetUTF16Function() is declared in the MathLink header file 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 length;
    int n;

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

    /* ... */

    MLReleaseUTF16Symbol(l, s, length);
}