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.

 Akzeptierte Antwort

James Tursa
James Tursa am 17 Mär. 2016

1 Stimme

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 Kommentare

Alain BARTHE
Alain BARTHE am 17 Mär. 2016
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.
James Tursa
James Tursa am 8 Nov. 2018

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Write C Functions Callable from MATLAB (MEX Files) finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by