Quelles sont les raisons de ne pas lier statiquement au CRT VC?

voix
2

Je trouve que, avec liaison dynamique, même avec SxS, Windows Update et venir taper du pied sur une version du CRT VC8 (par exemple, il a une faille de sécurité) et mon application ne parviendra pas à fonctionner avec les anciennes versions.

Que sont quelques-unes des raisons importantes de rester avec la liaison dynamique avec CRT VC, autre que d'augmenter la taille de vos fichiers binaires?

Créé 26/08/2009 à 23:40
source utilisateur
Dans d'autres langues...                            


6 réponses

voix
4

  1. Rester à jour sur les correctifs de sécurité est une bonne raison. Dans le cas contraire, vous êtes responsable de la reconstruction de votre application avec un CRT fixe et le déploiement à vos clients.
    • L'utilisation d'un tube cathodique partagé devrait entraîner une empreinte mémoire plus faible pour le système, puisque la plupart des pages de la DLL peuvent être partagées entre les processus.
Créé 26/08/2009 à 23:51
source utilisateur

voix
2

Je préfère la liaison statique. La sécurité est pas un problème vraiment grand car les pirates ciblent les applications que de nombreux utilisateurs ont installé sur leur système. Donc, à moins que votre demande a plus de 1 million d'utilisateurs, je ne vous inquiétez pas d'être exploité par des pirates.

Je n'aime pas l'enchaînement dynamique. Il se sent trop fragile pour moi.

EDIT: Et si vous voulez vous assurer que vos utilisateurs ont une version à jour de votre application puis écrire également une application de mise à jour qui est automatiquement installé avec votre application principale. Sous Windows, pourrait être mis en œuvre en tant que service.

Créé 27/08/2009 à 01:23
source utilisateur

voix
1

Si bien fait il devrait y avoir absolument aucun problème avec la liaison dynamique et l'application ne devrait pas manquer de fonctionner. La seule difficulté est de passer à la construction de votre installation à partir de la méthode que vous utilisez maintenant à la manière pris en charge par Microsoft (modules redistribuables de fusion - MSM, MSI, liaison dynamique). Voir ce lien pour obtenir des conseils très précieux droit de la source. Quelques citations intéressantes du blog:

  • Afin de redistribuer les bibliothèques Visual C ++, tout que vous devez faire est d' inclure le fichier .msm approprié et sa politique d' accompagnement .msm pour distribuer la bibliothèque dont vous avez besoin.
  • Encore une fois, juste pour souligner - ne pas utiliser VCRedist * .exe sauf si vous utilisez Cliquez une fois pour déployer votre application.
  • Cependant, je ne peux penser à aucun scénario dans lequel ce (ma note: liaison statique) est en fait la bonne chose à faire lors de l' expédition de votre produit aux clients.

Je suis d'accord que vous pourriez avoir besoin de faire un travail non négligeable pour mettre en œuvre ce (peut-être vous ne l'utilisez MSI en ce moment, etc.) mais je pense que si les ressources vous permettent devriez essayer de passer aux méthodes recommandées décrites ci-dessus.

Et si vous ne le faites pas la manière décrite ci-dessus votre application en effet cesser de travailler à un moment donné. Et les développeurs Microsoft blâment alors qu'ils étaient vraiment pas suivre la voie décrite ci-dessus pris en charge. Peut-être que Microsoft est à blâmer, car il ne lie pas le blog ci-dessus plus souvent sur MSDN pour répandre le mot, mais qui est à ce sujet.

Créé 14/10/2009 à 21:15
source utilisateur

voix
1

voir http://people.redhat.com/drepper/no_static_linking.html

Il s'agit de linux, mais quelques-unes des idées s'appliquent.

Créé 26/08/2009 à 23:53
source utilisateur

voix
0

Vous avez de la chance là - bas dans Windows. Et Linux littéralement se compose des bibliothèques, et vous avez des questions avec tous. :-)

Pour autant que je comprends, les fournisseurs de bibliothèques conservent toujours la compatibilité ascendante, surtout si elle est Microsoft. Ainsi, la solution est de construire votre application sur une vieille machine, en gardant à l'esprit que Microsoft développe la bibliothèque CRT de la manière que votre application fonctionnera sur toutes les autres versions.

Créé 26/08/2009 à 23:55
source utilisateur

voix
0

Lorsque votre programme utilise quelque chose du CRT qui est l'un des « fuites de sécurité » que vous mentionnez. Si vous liez statiquement vos utilisateurs ne savent qu'ils font l'objet d'une faille de sécurité, et sont peut-être en danger d'un virus. D'autre part, si votre programme ne fonctionne pas parce qu'il est lié dynamiquement, ils seront obligés de mettre à jour vers la nouvelle version en toute sécurité.

Créé 26/08/2009 à 23:50
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more