MLSetUserData (C 関数)
MLSetUserDataはWSSetUserDataに置き換えられた.
void MLSetUserData(MLINK link,void* d,MLUserFunction f)
ユーザデータオブジェクトdata と関数f をlink にインストールする.
詳細

- オブジェクトd はいつでもMLUserData()を使って取り出すことができる.
- MathLinkはMLClose()の時間に,link をその引数として関数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);
}