MLGetMessage (C 函数)

MLGetMessage 已经被 WSGetMessage 所取代.

int MLGetMessage(MLINK link,int* code,int*param)

从与 link 相关的紧急消息通道读取一个带外消息代码,并把代码存在 code,任何参数存在 param 中.

更多信息

  • MLGetMessage() 返回一个非零值0如果读取一个带外(out-of-band)消息,否则为零.
  • MLGetMessage() 不是一个块函数(nonblocking function).
  • MLGetMessage() 返回以下消息:
  • WLTerminateMessage关闭当前程序
    WLInterruptMessage中断当前操作
    WLAbortMessage放弃当前操作
    WLEndPacketMessage过时的消息
    WLSynchronizeMessage同步链接两端的内部表达式流
    WLImDyingMessage关闭链接的另一端
    WLWaitingAcknowledgement需要链接另一端的响应
    WLMarkTopLevelMessageMathLink 程序库的内部消息
    WLLinkClosingMessageMathLink 程序库的内部消息
    WLAuthenticationFailure验证消息失败
    WLFirstUserMessage用户定义的消息空间的开始
    WLLastUserMessage用户定义的消息空间的结尾
  • WLFirstUserMessage 应被用于任何用户定义的消息的开始值. 一个新的消息应被定义为 #define MyAppMessage MLFirstUserMessage + 1.
  • 用户定义的消息不应具有大于 WLLastUserMessage 的值.
  • 标准 MathLink 消息没有任何参数.
  • MLGetMessage() 在 MathLink 的标头文件 mathlink.h 中被声明.

范例

基本范例  (1)

#include "mathlink.h"

/* read an out-of-band message code from a link */

void f(MLINK lp)
{
    int code, param;

    if(MLMessageReady(lp))
    {
        if(! MLGetMessage(lp, &code, &param))
            { /* unable to read the message code from lp */ }
    }
}