MATLAB: Deployment of VC2005 S-Function: MSVCP80 missing

deploymentmanifestmsvcp80msvcr80s-functionvisual studio 2005

Deployment of Visual Studio 2005 S-Function: MSVCP80/MSVCR80/MSJAVA missing
My s-function created using VC2005 (SP1) is running as intended on the machine on which I created it. When I deploy that S-Function to other machines it crashes on some of them. Using "Dependency Walker" shows up three errors about missing DLLs.
  • On the target machine I found MSVCP80/MSVCR80 installed in ..\WinSxS directory.
  • After some readings I assume that my problem is related to different version numbers of the DLLs
  • Reinstalling "vcredist" didnĀ“t fix the problem.
  1. Is it possible NOT to use any of these DLLs?
  2. If not, how to deploy s-functions to different machines painlessly?
  3. What are the exact project settings for a VC2005 s-Function (e.g. MANIFEST) …?
Thanks in advance Uwe Creutzburg

Best Answer

I would hope that installing the VC2005 Redistributable would allow your S-Function to work on an arbitrary machine. But, it sounds like you already tried this.
Visual C++ does allow for static linkage of the VC runtime (the /MT switch); you might try using this switch when you link. In MEX, you can add to the the LINKFLAGS settings (see the "Override Option Details" section of the mex documentation -- I'm not sure exactly how this manifests itself in an S-Function).
Unfortunately, I don't have VC2005 installed to actually see if this actually works. :(