MatLab C++ Shared Dll library initialization problem

I am using Matlab 2013a and Visual Studio 2013. I am trying to use MatLab compiled dll from a C++ console application. My simple Matlab test dll and console application is compiled for 64bit machines (I made sure they are 64bit via dumpbin). I also have correct version of MCR installed on my machine (even if it's not necessary).
I setup my compiler using "mbuild -setup" command.
I compile my .m file using this command line: "mcc -v -W cpplib:mylib -T link:lib myFunc" successfully.
In my console application, I include these libraries: mylib.lib, mclmcrrt.lib, mclmcr.lib, libmx.lib, libmat.lib and use the libraries in this path "C:\Program Files\MATLAB\R2013a\extern\lib\win64\microsoft"
When I debug my program, it successfully initializes MCR using this call: "mclInitializeApplication(NULL, 0)" but when I call "mylibInitialize()" in order to initialize my library, program crashes. It doesn't even throw an axception therefore I cannot handle it using try/catch block. It gives unhandled exception and access vialoation error message.
These are sample debug output messages I got;
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: xercesc_2_7::NoSuchElementException at memory location 0x000000E263EF4E48.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: xercesc_2_7::SchemaDateTimeException at memory location 0x000000E263EF4EB8.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: xsd_binder::MalformedDocumentError at memory location 0x000000E263EF4E40.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: xercesc_2_7::NoSuchElementException at memory location 0x000000E263EF4E48.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: boost::thread_interrupted at memory location 0x000000E2643FF630.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: xsd_binder::MalformedDocumentError at memory location 0x000000E263EFA640.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: boost::thread_interrupted at memory location 0x000000E2642FFCD0.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: std::runtime_error at memory location 0x000000E264EFF530.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: CryptoPP::AES_PHM_Decryption::InvalidCiphertextOrKey at memory location 0x000000E264EFB0F0.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: tfFailedException at memory location 0x000000E264EF4C10.
First-chance exception at 0x00007FFA22761F08 in MatlabTest.exe: Microsoft C++ exception: varflowFailedException at memory location 0x000000E264EF9410. The thread 0x3550 has exited with code 0 (0x0). 'MatlabTest.exe' (Win32): Loaded 'C:\Program Files\MATLAB\R2013a\bin\win64\hgbuiltins.dll'. Cannot find or open the PDB file. First-chance exception at 0x0000000000B46E60 (m_interpreter.dll) in MatlabTest.exe: 0xC0000005: Access violation reading location 0x0000000064EF3B90. Unhandled exception at 0x0000000000B46E60 (m_interpreter.dll) in MatlabTest.exe: 0xC0000005: Access violation reading location 0x0000000064EF3B90.
The program '[12952] MatlabTest.exe' has exited with code 0 (0x0).
I installed MCR to another machine and tried to run this console application. I got the same result.
I tried Loren's Vigenere example too,
It didn't work either.
I couldn't find any helpful answer on Matlab community or stackoverflow.
Do you have any idea why this is happening?
Thanks

 Respuesta aceptada

cyvz
cyvz el 15 de Jun. de 2016

0 votos

It seems problem is MATLAB and Visual Studio version mismatch. If I use MatLab 2016a with Visual Studio 2013, there is no problem and everything works perfectly.

3 comentarios

Slava
Slava el 3 de Mayo de 2017
I'm getting a similar error using MATLAB R2017a and VS2015. What should I do?
Same thing with Matlab 2017a and VisualStudio 2017
money
money el 11 de Jul. de 2019
Do you solve the problem ?

Iniciar sesión para comentar.

Más respuestas (4)

Horst Steuer
Horst Steuer el 20 de Nov. de 2017

6 votos

Had the same issue with MATLAB 2015b, 2016a, 2017b, Visual Studio 2015 and 2017. The program either crashed on "mylibInitialize()" or returned with an empty error message. Turned out that the program actually worked outside of Visual Studio, i.e. starting from command line. Solved it by setting Debugger Type to Managed Only in Visual Studio (Properties of Project -> Configuration Properties -> Debugging -> Debugger Type).

5 comentarios

Yes, it works. But it disables debugging for unmanaged c++ :(
can you give me more details? my matlab is 2015a
if true
function [c] = myfittest(x, y)
c=x+y;
return;
end
end
my vs is 2013a(64bit)
myfittestInitialize() failed
Xuechu Xu
Xuechu Xu el 5 de Jul. de 2018
Hello, have you solved this problem? I met the same initiallize failing problem as yours, so I wonder if you could give me some help, thank you!
Jevy Lee
Jevy Lee el 25 de Jul. de 2019
Thank you very much! Your approach can solve this problem. My mabtlab ver is 2017b, and vs is 2017.
yuanjie li
yuanjie li el 21 de Mzo. de 2021
my ver is 2020b and vs2019, it works, thanks a lot

Iniciar sesión para comentar.

Anatoly Khamukhin
Anatoly Khamukhin el 25 de En. de 2018
Editada: Anatoly Khamukhin el 25 de En. de 2018
Problem is in usage of java in MATLAB.
Call
const char *args[] = {"-nojvm"};
const int count = sizeof(args) / sizeof(args[0]);
mclInitializeApplication(args, count))
instead of
mclInitializeApplication(NULL,0)
It solved the same issue for me.

2 comentarios

TripleSSSS
TripleSSSS el 17 de Sept. de 2018
It also solved my problem
Yes. This worked for me as well. Thank you.

Iniciar sesión para comentar.

kishore
kishore el 21 de Ag. de 2017

0 votos

could you please provide the compatibility version for MATLAB R2016b with visual studio version.
same issue with MATLAB R2016b with visual studio 2013.

1 comentario

Jun Xu
Jun Xu el 8 de Mzo. de 2020
https://www.mathworks.com/support/requirements/previous-releases.html

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB Compiler en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 31 de Mayo de 2016

Respondida:

el 6 de Feb. de 2026 a las 5:31

Community Treasure Hunt

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

Start Hunting!

Translated by