I want to call MATLAB function in my C++ project.
I\'m using Matlab R2010a and Visual Studio 2010
First I created a simple matlab function:
f
maybe it is too late but for the future.
Include foo.h.
Add C/C++-General-Additional Include Directories the way to the matlab headers (C:\Program Files (x86)\MATLAB\R2009b\extern\include).
Add foo.lib, mclmcrrt.lib and mclcommain.lib for Linker in Additional Dependencies.
For linker in Additional Library Directories show the way to your matlab libs(C:\Program Files (x86)\MATLAB\R2009b\extern\lib\win32\microsoft for 32bit ver (matlab and VS versions should be the same. I had to install the second Matlab 32bit version.)).
I added the way to the foo.lib in my system path.
Before using your library foo.dll, you should initialize MCR and library function.
mclInitializeApplication(NULL,0);
fooInitialize();
After using don't forget:
mclTerminateApplication();
fooTerminate();
And some demonstration code, looks like:
int num = 1;
double numbrIn = 1.5;
std::cout<<"now we have " << numbrIn << std::endl;
mwArray array_in(num, 1, mxDOUBLE_CLASS, mxREAL);
array_in.SetData(&numbrIn,num);
mwArray array_out;
foo(1, array_out, array_in);
array_out.GetData(&numbrIn, num);
std::cout<<"now we have " << numbrIn << std::endl;