Isenção de responsabilidade: Esta é uma solução alternativa , não uma solução para sua resposta, mas ainda assim, uma possibilidade muito viável.
Se você quiser ter certeza absoluta de que não há dependências do próprio VS - mas ele possui suas próprias desvantagens - nas configurações de geração de código, você pode optar por usar Multi Threaded (MT) / Multi Threaded Debug (MD) (para compilações de depuração ) em vez de MT DLL (MTd) / MT Debug DLL (MDd).
Quais são as desvantagens?
- Aumenta seu tamanho de executável e seu binário (embora se você estiver criando um jogo, isso provavelmente é insignificante)
- compilado dessa maneira não se beneficiará das atualizações das DLLs de tempo de execução. (por exemplo, se a Microsoft lançar o VC ++ 2015 SP2, SP3, SP4 etc.) Mas isso é com você.
- Mais uso de RAM (também insignificante) porque você não reutiliza o código existente / carregado (DLLs)
- Você precisa garantir que todas as bibliotecas vinculadas sejam compiladas no mesmo tempo de execução, caso contrário, a vinculação poderá falhar ou poderão ocorrer erros interessantes (provavelmente não, mas isso aconteceu comigo uma vez na vida em um projeto legado que foi atualizado para o mais novo VS)
E quais são os profissionais?
- seu executável não terá dependências "externas" do próprio VS (nenhum requisito msvc * .dll).
- algumas pessoas vêem isso como um aumento de desempenho porque você está eliminando a sobrecarga de chamadas de DLL, enquanto isso é teoricamente verdade, as melhorias são negligenciáveis na prática
Verifique este link para obter uma explicação mais elaborada e para os problemas e falhas que você pode encontrar ao usar um tempo de execução estático.
Outra solução alternativa seria colocar todas as DLLs necessárias onde está o seu binário. Seu aplicativo não se beneficiará de atualizações (para as bibliotecas de tempo de execução), mas é isso.
A solução real é distribuir o aplicativo no modo DLL de liberação / sem depuração (MTd) e fornecer o instalador redistribuível correto do VC ++ (e quaisquer outros instaladores de biblioteca que você possa usar, por exemplo, OpenAL, DirectX9, PhysX), e deixar o usuário executar esse antes de executar seu aplicativo (como outras respostas indicadas).
Além disso, certifique-se de informar ao usuário que ele / ela precisa atualizar seus drivers de GPU (pois eles também contêm vários tempos de execução para muitos aplicativos, por exemplo, OpenGL, Vulcan).