From: Venn Ravichandran on
The reason you are getting a conflict is because, as Fifo found out, the matrix.h redefines the function that is in yvals.h.
What Fifo suggests is one way to do it.
However, I always hesitate to edit the .h files provide by someone else. Simply put, you could end up destroying the interface functionality they are providing you and therefore not a good programming practice.

Instead, my encapsulating the matrix.h into its own namespace you avoid conflict:
namespace mat {
#include <matrix.h>
}

What this means is that you will have to address the variables/functions within matrix.h by adding the "mat::" prefix to them. For instance, instead of being able to call
mxArray x;
you will have to use
mat::mxArray x;
where "mat" is the namespace within which you included "matrix.h"

Cheers,
-Venn
From: Alex Höck on
Since I didn't find a usable answer here is my solution which works with the Visual Studio 10 C compiler:

#include <yvals.h>
#if (_MSC_VER >= 1600)
#define __STDC_UTF_16__
#endif
#include "mex.h"

It is necessary to include the yvals.h before mex.h (guess matrix.h is the same, because the redefinition code is in matrix.h).
First  |  Prev  | 
Pages: 1 2
Prev: meditor.exe
Next: What does this mean???