WSGetNumberAsUTF32String (C 函数)

int WSGetNumberAsUTF32String(WSLINK l, const unsigned int **s, int n)

读取由 l 指定的 WSTP 连接上的下一个数字,作为 UTF-32 字符的一个字符串,表示存储在长度为 n 的字符串 s 中的数字值.

更多信息

  • WSGetNumberAsUTF32String() 可分配内存以储存字符串值. 可调用有 s 内容的 WSReleaseUTF32String() 以释放由 WSGetNumberAsUTF32String() 分配的内存. 若 WSGetNumberAsUTF32String() 失败,则不要调用有 s 内容的 WSReleaseUTF32String().
  • WSGetNumberAsUTF32String() 返回的 UTF-32 字符串 s 以一个字节顺序标记(byte order mark)开始.
  • 字符串长度 n 包括了字节顺序标记(byte order mark).
  • 若发生错误,则 WSGetNumberAsUTF32String() 返回0;若函数成功,则返回非零值.
  • WSTP 的标头文件 wstp.h 已对 WSGetNumberAsUTF32String() 作出声明.

范例

基本范例  (1)

#include "wstp.h"

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

void f(WSLINK l)
{
    switch(WSGetType(l))
    {
        case WSTKINT:
        {
            int rawType;
            rawType = WSGetRawType(l);
            if(rawType == WSTK_WSSHORT)
            {
                short theNumber;
                WSGetInteger16(l, &theNumber);
                /* ... */
            }
            else if(rawType == WSTK_WSINT)
            {
                int theNumber;
                WSGetInteger32(l, &theNumber);
                /* ... */
            }
            else
            {
                const int *theNumber;
                int length;
                WSGetNumberAsUTF32String(l, &theNumber, &length);
                /* ... */
                WSReleaseUTF32String(l, theNumber, length);
            }
        }
        break;
        case WSTKREAL:
            /* ... */
    }
}