I am quite experienced with matlab mex functions, but I am having a problem very difficult to solve.
I am receiving a message like this:
Invalid MEX-file 'mymex.mexw64': The specified procedure could not be found.
Normally, this problem is related to missing dlls. However, I checked several times with dependency walker and nothing is missing.
Also, I checked with "alternative" softwares, eg: ProcessMonitor, ProcessExplorer, CFF_Explorer... and so on. I have tried everything.
The problem started when I tried to migrate an old code from Matlab2012 to Matlab2015.
In this process :
- I updated libmx, libmex to the current ones (2015)
- Changed qt version to a new version (yes, my mex function uses qt)
- Changed platform to v140 (the old one was v110, Visual Studio 2012)
My only hypothesis is that something with some custom *.lib files used. These lib files are compiled in v110, and I am using v140. In my distribution package I have included the dlls to both Visual C++ Redistributable Packages v110 e v140. I am not sure if this is possible, although the source code is compiling just fine.
I have not tested removing these *.libs, because this would be quite painful
My questions are:
- Is my hypothesis valid?
- Does anyone know how to solve this?