How to determine MEX API version?

I have written some years ago a C shared library to use with Matlab.
I was using the MX_API_VER preprocessor macro to detect MEX API version,
#include "mex.h"
#include "matrix.h"
#if (! defined MX_API_VER) || (MX_API_VER < 0x07030000)
/*
* Compatibiliy with older version of MATLAB
*/
typedef int mwSize;
typedef int mwIndex;
#endif
Unfortunately, it seems that the MX_API_VER has disappeared from matrix.h in Matlab 2016a.
Is there another way to detect MAX API version ?
Regards.

 Accepted Answer

I have a complicated macro to detect API version at compile time that I could post, but if you are only trying to deal with the mwSize and mwIndex stuff you can check for MWSIZE_MAX. E.g.,
#ifndef MWSIZE_MAX
#define mwIndex int
#define mwSignedIndex int
#define mwSize int
#endif

2 Comments

I think your solution will be sufficient for my usage.
However, I was surprised to see that the following has disappeared from the matrix.h, when upgrading to 2016a.
#define MX_API_VER 0x7nnnnnnn
Many thanks for your quick answer.

Sign in to comment.

More Answers (0)

Categories

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!