1

I have written a program in c++11. My intention is to use MATLAB environment for plotting.

So, I followed these two links to have some idea:MATLAB_Build C++ Engine programs and c++ start MATLAB session. (There must be other ways to interface MATLAB and c++. But I want to know where is my fault before trying other ones)

As those above links have suggested I built my project accordingly using visual studio '17. The initial errors that I found was, my application could not locate the following .dll files libMatlabEngine.dll, libMatlabdataArray.lib.

So, I moved my .dlls to the executable location as suggested here. But after then my code is throwing the following error: 0xC0000005: Access violation executing location 0x0000000000000000.

Below is the piece of code that I'm trying. I guess it's the startMATLAB() which is returning a NULL pointer and the code is failing for that. But I can't figure out what's the reason.

Appreciate your help.

//Start the MATLAB engine
using namespace matlab::engine;
using namespace matlab::data;

unique_ptr<MATLABEngine> matlabptr = startMATLAB();

//Cretae a matlab array factory
ArrayFactory factory;
auto inputArray = factory.createArray({ 1, 6 }, cppData.cbegin(), cppData.cend());
auto time_array = factory.createArray({ 1, 6 }, time.cbegin(), time.cend());

matlabptr->setVariable(convertUTF8StringToUTF16String("data"), move(inputArray));
matlabptr->setVariable(convertUTF8StringToUTF16String("time"), move(time_array));

matlabptr->eval(convertUTF8StringToUTF16String("plot(time, data)"));
  • This issue has been already discussed here. But it seems like no one has found a proper solution: https://stackoverflow.com/questions/47693078/issu-using-startmatlab-in-c-with-matlabengine-hpp-in-r2017b?rq=1 – Debasish Ray Mohapatra Jun 16 '18 at 00:49

0 Answers0