WSGetNumberAsUTF16String (C 函数)
int WSGetNumberAsUTF16String(WSLINK l, const unsigned short **s, int *v, int *c)
读取由 l 指定的 WSTP 连接上的下一个数字,作为 UTF-16 字符的一个字符串,表示存储在字符 c 和长度为 v 的字符串 s 的数字值.
更多信息
- WSGetNumberAsUTF16String() 可分配内存以储存字符串值. 可以调用有 s 内容的 WSReleaseUTF16String() 来释放由 WSGetNumberAsUTF16String() 分配的内存. 若 WSGetNumberAsUTF16String() 失败,则不要调用有内容 s 的 WSReleaseUTF16String().
- 由 WSGetNumberAsUTF16String() 返回的 UTF-16 字符串 s 以一个字节顺序标记(byte order mark)开始.
- 字符串长度 v 包括了字节顺序标记(byte order mark).
- 若发生错误,则 WSGetNumberAsUTF16String() 返回0;若成功,则返回非零值.
- WSTP 的标头文件 wstp.h 已对 WSGetNumberAsUTF16String() 作出声明.
范例
基本范例 (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 unsigned short *theNumber;
int length, characters;
WSGetNumberAsUTF16String(l, &theNumber, &length, &characters);
/* ... */
WSReleaseUTF16String(l, theNumber, length);
}
}
break;
case WSTKREAL:
/* ... */
}
}