The routine CPXaddfuncdest() adds a function msgfunction() to the message destination list for a channel. This routine allows users to "trap" messages instead of printing them. That is, when a message is sent to the channel, the routine msgfunction() is called for each destination that was added to the function destination list by CPXaddfuncdest().

To illustrate, consider an application in which a developer wishes to trap CPLEX error messages and display them in a dialog box that prompts the user for an action. Use CPXaddfuncdest() to add the address of a function to the list of message destinations associated with the cpxerror channel. Then write the msgfunction() routine. It must contain the code that controls the dialog box. When CPXmsg() is called with cpxerror as its first argument, it calls the msgfunction() routine, which can then display the error message.

Return Value

The routine returns a zero on success, and a nonzero if an error occurs. Failure occurs when msgfunction() is not in the message destination list or the channel does not exist.


  int CPXaddfuncdest (CPXCENVptr env,
                      CPXCHANNELptr channel,
                      void *handle,
                      void (CPXPUBLIC *msgfunction) (void *, const char *));


CPXCENVptr env

The pointer to the CPLEX environment as returned by CPXopenCPLEX().

CPXCHANNELptr channel

A pointer to the channel to which the function destination is to be added.

void *handle

A void pointer that can be used in the msgfunction() routine to direct the message to a file, the screen, or a memory location.

void (CPXPUBLIC *msgfunction) (void *, const char *)

A pointer to the function to be called when a message is sent to a channel.


  void msgfunction (void *handle, char *msg_string)
      FILE *fp;
      fp = (FILE *)handle;
      fprintf (fp, "%s", msg_string);
  status = CPXaddfuncdest (env, mychannel, fileptr, msgfunction);

See Also

Example lpex5.c in the CPLEX User's Manual.

Previous Page: CPXaddfpdest Return to Top Next Page: CPXaddrows