MLSetUserData (C 函数)

MLSetUserData 已经被 WSSetUserData 所取代.

void MLSetUserData(MLINK link,void* d,MLUserFunction f)

安装用户数据对象 datalink 中的函数 f.

更多信息

  • 对象 d 在任何时候都可以使用 WLUserData() 检索.
  • MathLink 在带有 link 作为自变量的 MLClose() 时会自动调用函数 f.
  • MLSetUserData() 在 MathLink 的标头文件 mathlink.h 中被声明.

范例

基本范例  (1)

#include <stdlib.h>
#include "mathlink.h"

typedef struct foo_
{
    int member1;
} foo;


/* destroy a foo object retrieved from a link */
void c(MLINK lp)
{
    foo *fobj;

    fobj = MLUserData(lp, (MLUserFunction *)0);
    if(fobj == (foo *)0) return;

    free(foo);
}


/* allocate a foo object and store it in a link */

void f(MLINK lp)
{
    foo *fobj;

    fobj = (foo *)malloc(sizeof(foo));
    if(fobj == (foo *)0)
        { /* error allocating space for foo object */ }

    MLSetUserData(lp, (void *)fobj, c);
}