Question

Avons-nous besoin encore à se soucier de vcredist.exe lors de la distribution des applications natives Windows? Est-ce que l'un de ces sont livrés avec Win-7?

Dans le cas contraire, yat il des raisons techniques ceux-ci ne sont pas fournis aux personnes par exemple windows update - insteadof nous laisser peser sur les clients encore-une autre-chose-that.must travail? (Ok, ça peut paraître argumentative, mais je me demande vraiment la raison pour laquelle ces bibliothèques sont installées par défaut ne / mise à jour sur les machines Windows)

Était-ce utile?

La solution

Je pense que cela dépend comment / ce que vous êtes lié. Si vous êtes lié directement à kernel32.dll etc alors il n'a pas d'importance, bien sûr (à savoir la bibliothèque d'exécution c est intégré), mais Microsoft ne recommande pas cette méthode de distribution.

Si vous êtes lié par msvcr80 / 90/2010 quel que soit is.dll, vous devrez peut-être distribuer cette bibliothèque d'exécution que sur XP, il ne vient pas en standard. msvcr80 est sur Vista mais msvcr90 ne pas que je ne pense pas - bien qu'il puisse s'ajouté par Windows Update. Pourtant, vous ne pouvez pas compter sur elle d'être là donc la sécurité intégrée est d'avoir une copie de celui-ci au cas où.

Pour autant que je sais msvcrt.dll (que les liens MinGW à) est distribué avec tout> xp. Est-ce lien VC6 à cela? Je n'ai pas eu VC ++ alors.

Jetez un oeil à l'exécutable avec depends.exe à partir du Windows SDK et le travail sur ce qu'il est livré avec au-delà des parties de l'API Windows.

Autres conseils

Oui, vous le faites. Sinon, votre programme se bloque de façon spectaculaire lorsque vous essayez de l'exécuter. Beaucoup d'utilisateurs ne sont pas en cours d'exécution Win7, et même alors, il n'y a aucun moyen d'assurer qu'ils ont le temps d'exécution installé sans l'inclure dans votre installateur.

Sinon, vous pouvez créer un lien avec l'accumulation de statique du moteur d'exécution, ce qui évite la nécessité de prendre la peine avec le runtime C redistribuable.

Lors de la compilation avec GCC j'ai toujours lien avec MSVCRT.DLL qui est toujours là sur XP et plus récent.

Ceci est en réponse au commentaire de Larry Osterman du 14 avril à 23h29:

Vous dites:

  

msvcrt.dll n'est pas le moteur d'exécution C. Il est un composant interne de Windows qui ne devrait jamais être   utilisé par les applications 3ème partie. Vous remarquerez que vous ne pouvez pas trouver toutes les références sur MSDN   utiliser cette DLL. Une fois sur une des applications 3ème partie du temps utilisé cela, mais cela n'a pas été le   cas pendant environ 10 ans. - Larry Osterman 14 avril à 23h29

Cela semble aller à l'encontre du principe ensemble du système MinGW qui est basé sur l'accès msvcrt.dll et votre commentaire m'a permis de mieux comprendre comment fonctionne MinGW. Il se avère que MinGW utilise toujours le msvcrt.dll qui a été livré en 1998! Voir ce lien:

http://www.mingw.org/wiki/C99

Merci,

Todd

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top