Stricto sensu, ça ne la fait pas varier en effet, mais le résultat est le même. Note que ce n'est pas seulement errno: la structure FILE change, donc si une bibliothèque dynamique compilée avec MSVC X passe un FILE* à une bibliothèque dynamique compilée avec MSVC Y, ça casse (*). Ceci parce que chaque bibliothèque dynamique utilisera un msvcrt différent.
Avec les bibliothèques partagées de type Unix, il n'y a pas ce problème, car toutes les bibliothèques chargées dans un processus partagent la même libc : les pointeurs sont naturellement compatibles.
((*) il y a peut-être d'autres cas similaires, mais FILE est le plus visible et le plus gênant ici)
[^] # Re: Oui, mais.
Posté par Antoine . En réponse au journal Self serving. Évalué à 2.
Stricto sensu, ça ne la fait pas varier en effet, mais le résultat est le même. Note que ce n'est pas seulement
errno: la structure FILE change, donc si une bibliothèque dynamique compilée avec MSVC X passe unFILE*à une bibliothèque dynamique compilée avec MSVC Y, ça casse (*). Ceci parce que chaque bibliothèque dynamique utilisera un msvcrt différent.Avec les bibliothèques partagées de type Unix, il n'y a pas ce problème, car toutes les bibliothèques chargées dans un processus partagent la même libc : les pointeurs sont naturellement compatibles.
((*) il y a peut-être d'autres cas similaires, mais FILE est le plus visible et le plus gênant ici)