WSEvaluateString (C 函数)

int WSEvaluateString(WSLINK link,char *string)

发送一个字符串给 Wolfram 语言进行计算,放弃响应中发送的任何数据包.

更多信息

  • WSEvaluateString() 的代码没有包含在 WSTP 程序库中,但是由 mccmprep 在处理 WSTP 模板文件时自动生成.
  • 会导致 被打印在链接的另一端的一个 Wolfram 系统会话中.
  • WSEvaluateString() 只可用于 mprep WSTP 模板 程序中.
  • WSEvaluateString() 失败时返回0,成功时返回非零值.
  • WSTP 的标头文件 wstp.h 已对 WSEvaluateString() 作出声明.

范例

基本范例  (1)

:Begin:
:Function: f
:Pattern: KernelTime[]
:Arguments: {}
:ArgumentTypes: Manual
:ReturnType: Manual
:End:

#include "wstp.h"

/* read the Kernel's response from evaluating the expression
{Date[],$TimeZone} */

void f(void)
{
    /* Pretend we are not in our local timezone. */
    if(! WSEvaluateString(stdlink, "$TimeZone = 9;"))
        { /* unable to send $TimeZone = 9; to stdlink */ }

    if(! WSEvaluate(stdlink, "{Date[],$TimeZone}"))
        { /* unable to send the expression to stdlink */ }

    /* get the Kernel's response */
    switch(WSGetType(stdlink))
    {
        /* ... */
    }

    /* ... */    
}