Descargo de responsabilidad: esta es una solución , no una solución a su respuesta, pero aún así, una posibilidad muy viable.
Si desea estar absolutamente seguro de que no hay dependencias de VS en sí, pero viene con sus propios inconvenientes, en la configuración de generación de código puede elegir ir con Multi Threaded (MT) / Multi Threaded Debug (MD) (para compilaciones de depuración) ) en lugar de MT DLL (MTd) / MT Debug DLL (MDd).
¿Cuáles son los inconvenientes?
- Aumenta tu tamaño ejecutable y tu binario (aunque si estás haciendo un juego esto probablemente sea insignificante)
- compilado de esta manera no se beneficiará de las actualizaciones de dlls en tiempo de ejecución. (p. ej., si Microsoft lanza VC ++ 2015 SP2, SP3, SP4, etc.) Pero eso depende de usted.
- Más uso de RAM (también insignificante) porque no reutiliza el código existente / cargado (DLL)
- Debe asegurarse de que todas las bibliotecas que vincule estén compiladas en el mismo tiempo de ejecución, de lo contrario, la vinculación podría fallar o podrían producirse interesantes errores de tiempo de ejecución (probablemente no, pero me sucedió una vez en la vida en un proyecto heredado que se ha actualizado a el más nuevo VS)
¿Y cuáles son los pros?
- su ejecutable no tendrá dependencias "externas" del propio VS (no se requiere msvc * .dll).
- algunas personas ven esto como un aumento del rendimiento porque está eliminando la sobrecarga de llamadas de DLL, mientras que esto es teóricamente cierto, las mejoras son insignificantes en la práctica
Mira este enlace para obtener una explicación más elaborada y las fallas y caídas que puede encontrar al usar un tiempo de ejecución estático.
Otra solución sería colocar todas las DLL necesarias donde está su binario. Su aplicación no se beneficiará de las actualizaciones (a las bibliotecas de tiempo de ejecución), pero eso es todo.
La solución real es distribuir la aplicación en modo dll de liberación / no depuración (MTd) y proporcionar el instalador redistribuible VC ++ correcto (y cualquier otro instalador de biblioteca que pueda usar, por ejemplo, OpenAL, DirectX9, PhysX), y dejar que el usuario ejecute eso antes de ejecutar su aplicación (como señalaron otras respuestas).
También asegúrese de informar al usuario que posiblemente necesita actualizar sus controladores de GPU (ya que también contienen múltiples tiempos de ejecución para muchas aplicaciones, por ejemplo, OpenGL, Vulcan).