Le problème habituel est que le code généré avec différentes versions de Visual Studio utilise une version différente des bibliothèques d'exécution. Selon la conception de la bibliothèque, cela peut souvent poser des problèmes car il existe plusieurs versions de fonctions d'allocation et de désallocation (par exemple) et il peut être facile d'obtenir des erreurs de tas lorsqu'un pointeur attribué dans une bibliothèque d'exécution est transmis à une fonction de désallocation d'une fonction différente. Cela peut se produire si les bibliothèques d'exécution sont liées dynamiquement ou statiquement.
Même si ce problème est évité par une bonne conception de bibliothèque, il est toujours inefficace d'avoir plusieurs tas C dans le même programme.
Il existe d'autres problèmes potentiels avec les fonctions de bibliothèque de temps d'exécution qui se fondent sur des informations telles que statiquement tenue srand
et rand
, lieux et fonctions héritées laides telles que strtok
.
Même lorsqu'il est possible de lier plusieurs versions de Visual Studio, il est généralement plus sûr de ne pas le faire.