#include #include "ml.h" int MLInterrupt = 0; int MLAbort = 0; int MLDone = 0; MLINK stdlink = 0; MLEnvironment stdenv = 0; MLMessageHandlerObject stdhandler = 0; void MLDefaultHandler(MLINK mlp, int message, int n) { switch(message) { case MLTerminateMessage: MLDone = 1; case MLAbortMessage: MLAbort = 1; case MLInterruptMessage: MLInterrupt = 1; default: return; } } int MLInitializeMathLink(char * commandLine) { int err; if(!stdenv) stdenv = MLInitialize((MLParametersPointer)0); if(stdenv == (MLEnvironment)0) return 0; if(!stdhandler) stdhandler = (MLMessageHandlerObject)MLDefaultHandler; stdlink = MLOpenString(stdenv, commandLine, &err); if(stdlink == (MLINK)0) { MLDeinitialize(stdenv); stdenv = (MLEnvironment)0; return 0; } if(stdhandler) MLSetMessageHandler(stdlink, stdhandler); return 1; } void MLFinalizeMathLink() { MLClose(stdlink); MLDeinitialize(stdenv); }