2010-05-15 8 views
0

Lorsqu'un projet complet (solution) consiste en plusieurs sous-projets (.vcproj), quelle est la meilleure façon de les lier: en tant que bibliothèques statiques ou bibliothèques partagées?Visual Studio Solution: projets statiques ou partagés?

En supposant que ces sous-projets ne sont pas utilisés ailleurs, l'approche des bibliothèques partagées ne devrait pas diminuer l'utilisation de la mémoire ou le temps de chargement.

Répondre

3

Opinion: Statique, dans presque tous les cas.

La création d'interfaces entre des bibliothèques chargées dynamiquement est beaucoup plus difficile en C++ sous Windows. Par exemple, contrairement aux objets partagés Unix, vous ne pouvez pas avoir un singleton standard pour tous les modules, car une DLL aurait son propre ensemble de variables statiques.

Les interfaces orientées objet sont souvent difficiles à exporter à partir d'une DLL.

En ce qui concerne le temps de chargement, des problèmes tels que le rebasage doivent être résolus avec des bibliothèques partagées. Par contre, les bibliothèques que vous ne partagez pas aujourd'hui pourraient être partagées à l'avenir. Par contre, les bibliothèques que vous ne partagez pas aujourd'hui peuvent être partagées. Cependant, dans la plupart des cas, il vaut mieux payer le prix de la duplication en RAM ou en image disque que le prix de la dépendance sur des modules supplémentaires.

+0

Différents sous-modules dans un projet, oui. Pour une utilisation avec plus d'un projet, ne pas aller avec dynamique. Avec l'une ou l'autre méthode, vous devez faire attention à l'endroit où les symboles finissent –

Questions connexes