We released a plug-in for VST/AU a while back (ABL3) which is built using JUCE, and in general seems to work fine.
But a few users have noted that they cannot launch it due to an error about a missing dll, specifically MSVCP100.DLL .
We have instructed those users to download and install the: Microsoft Visual C++ 2010 Redistributable Package (x64) which seems to solve the problem, but this is not optimal for an audio plug-in.
So my questions are:
1) How do I avoid the plug-in requiring this dll?
2) Or, in case it really is needed how do I bundle this into the installer? Is adding the .dll where the plug-in dll resides enough?
I am using Vistual Studio 2010 to build the plug-in.
By linking the runtime library statically instead of dynamically.
2) Or, in case it really is needed how do I bundle this into the installer? Is adding the .dll where the plug-in dll resides enough?
You bundle the appropriate Microsoft Redistributable package (in your case this one: https://www.microsoft.com/en-us/download/details.aspx?id=14632) with your installer. Microsoft has some extensive documentation about how this should be done.
Are there some caveats (besides code size) when linking the runtime statically? I read somewhere about problems when different plugins use different versions of the runtime libraries.
I read somewhere about problems when different plugins use different versions of the runtime libraries.
This is only a problem if you share C++ objects or allow C++ exceptions to cross the API boundary between plug-in and host. However, the API of VST (using simple C calls) & VST3 (using .COM) are specifically designed in a way that avoids any of these problems. AAX is a bit of an exception: the visual studio runtime version does not matter, however, AAX won't work with a mingw compiler as AAX uses virtual destructors in their interface classes (classes starting with an "I") which gcc and VS put at different locations inside the v-table.