MLPutUTF16String (C 関数)
MLPutUTF16StringはWSPutUTF16Stringに置き換えられた.
int MLPutUTF16String(MLINK link,const unsigned short *s,int len)
長さlen のUTF-16文字列s を,link で指定されたMathLink接続に置く.
詳細
- MLPutUTF16String()は文字列s の文字数を自動的に測定する.
- UTF-16のコード化形式でコード化された文字列 s は,バイトオーダーマークで始まらなければならない.
- 文字列の長さ len には,バイトオーダーマークが含まれなければならない.
- MLPutUTF16String()はエラーがあると0を返し,関数が成功すると0以外の値を返す.
- MLError()を使うと,MLPutUTF16String()が不成功の場合にエラーコードを引き出すことができる.
- MLPutUTF16String()は,MathLinkヘッダファイルmathlink.hの中で宣言される.
例題
例 (1)
#include "mathlink.h"
/* send the expression N[10/Sin[2]] to a link */
void f(MLINK lp)
{
unsigned short expr[13];
expr[0] = 0xFEFF;
expr[1] = 'N';
expr[2] = '[';
expr[3] = '1';
expr[4] = '0';
expr[5] = '/';
expr[6] = 'S';
expr[7] = 'i';
expr[8] = 'n';
expr[9] = '[';
expr[10] = '2';
expr[11] = ']';
expr[12] = ']';
if(! MLPutFunction(lp, "EvaluatePacket", 1))
{ /* unable to put the function to lp */ }
if(! MLPutFunction(lp, "ToExpression", 1))
{ /* unable to put the function to lp */ }
if(! MLPutUTF16String(lp, (const unsigned short *)expr, 13))
{ /* unable to put the expression string to lp */ }
if(! MLEndPacket(lp))
{ /* unable to put the end-of-packet indicator to lp */ }
if(! MLFlush(lp))
{ /* unable to flush any outgoing data buffered in lp */ }
}