MLGetNumberAsUTF16String (C 関数)

MLGetNumberAsUTF16StringWSGetNumberAsUTF16Stringに置き換えられた.

int MLGetNumberAsUTF16String(MLINK l, const unsigned short **s, int *v, int *c)

l が指定するMathLink接続上の次の数を,長さが v で文字数が c の文字列 s に保存された数の値を表すUTF-16の文字列として読み取る.

詳細

  • MLGetNumberAsUTF16String()はメモリを割り当てて,文字列の値を保存する.MLGetNumberAsUTF16String()によって割り当てられたメモリを解放するには,s の内容についてMLReleaseUTF16String()を呼び出す.MLGetNumberAsUTF16String()が失敗した場合には,s の内容についてMLReleaseUTF16String()を呼び出してはならない.
  • MLGetNumberAsUTF16String()によって返されたUTF-16の文字列 s は,バイトオーダーマークで始まる.
  • 文字列の長さ v には,バイトオーダーマークが含まれる.
  • MLGetNumberAsUTF16String()は,エラーの場合には0を,関数が成功した場合には非零の値を返す.
  • MLGetNumberAsUTF16String()は,MathLinkヘッダファイルmathlink.hで宣言される.

例題

  (1)

#include "mathlink.h"

/* A function for reading an integer from a link */

void f(MLINK l)
{
    switch(MLGetType(l))
    {
        case MLTKINT:
        {
            int rawType;
            rawType = MLGetRawType(l);
            if(rawType == MLTK_MLSHORT)
            {
                short theNumber;
                MLGetInteger16(l, &theNumber);
                /* ... */
            }
            else if(rawType == MLTK_MLINT)
            {
                int theNumber;
                MLGetInteger32(l, &theNumber);
                /* ... */
            }
            else
            {
                const unsigned short *theNumber;
                int length, characters;
                MLGetNumberAsUTF16String(l, &theNumber, &length, &characters);
                /* ... */
                MLReleaseUTF16String(l, theNumber, length);
            }
        }
        break;
        case MLTKREAL:
            /* ... */
    }
}