How to call a .p file from another location in a deployed application
10 views (last 30 days)
I have a MATLAB code deployed as an exe application using Compiler. In that MATLAB code, I would like to call and execute a .p file which is located in some other folder location. Is there a suitable way to do it ? I read that addpath cannot be used in deployed applications ?
The idea is that I am having a set of functions f1,f2,f3....,fn. All the pre-processing and post-processing are common for these functions. So I have kept this in a MATLAB code and deployed as exe. The functions are written in separate .m and protected as .p. Now if I have to add a new function, I need to create only a .p file and copy it to a location.
I am also trying to add my .exe concept
% call function_file_path (.p file)
Can addpath be used since this is a deployed application ?
Walter Roberson on 19 Sep 2018
Edited: Walter Roberson on 19 Sep 2018
Deployed executables must have all .m and .p files available at the time of compilation. They are encrypted and included in the .ctf and are executed in encrypted form. It is never possible to evaluate unencrypted .m or .p from a deployed executable.
The closest you can get is that loadlibrary() can be used to call into external shared objects whose contents do not have to be fixed at the time of deployment, as long as the API does not change. It would be valid to have an initialization layer that looked into a folder to find and catalog .dll and to return their names or identifiers, with calllib() being used to call to the consistent interface layer that would call into the plug-ins some-how. I do not think it would be possible to write the plug-ins in MATLAB and I do not think it would be possible to use engOpen() and related
"Engine applications require an installed version of MATLAB; you cannot run the MATLAB engine on a machine that only has the MATLAB Runtime"