2014-05-20 2 views
0

J'ai créé une DLL de bibliothèque de classes qui sera utilisée dans une application compilée sur un PC différent. Dll est créée en utilisant Visual Studio 2010 C++. Je suppose que l'application qui utilisera dll devrait aussi être compilée avec VS 2010 C++ et pas par exemple VS2012 C++. Corrigez-moi si j'ai tort, s'il-vous plait.Dépendance dll de la bibliothèque de classes sur le compilateur

Qu'est-ce qui se passe si l'exécutable et DLL PC aura version de Visual Studio 2010 - par exemple Professionnel/Intégrale?

Qu'est-ce qui se passe si ceux-ci Visual Studio aura des paquets de mise à jour différents installés?

+0

C'est un moyen très simple d'éviter beaucoup de problèmes. Concevoir une DLL pour que les détails de l'implémentation ne cassent pas le code client n'est pas si simple, vous devez abandonner beaucoup de goodies C++. Vous ne pouvez pas faire des choses évidentes comme renvoyer une chaîne std :: string ou lancer une exception. Le type de garanties dont vous avez besoin pour rendre la gestion de la mémoire et la disposition des objets compatibles n'est fourni que par un environnement d'exécution VM. Pas en C++, en particulier C++ 11 bouleversé le panier de pommes. L'édition VS n'a pas d'importance, juste le numéro de version. –

Répondre

1

Visual Studio 2012 vous permet de spécifier dans la page de propriétés d'un autre « plate-forme Toolset » pour un projet. Ainsi, vous pouvez utiliser 2012 pour créer une application qui cible une DLL 2010. l'application doit cibler le même jeu d'outils que la DLL. Les différentes versions (par exemple Professional/Ultimate) ne devraient pas être un facteur car ce sont les fichiers redistribuables (dll) qui comptent.

Questions connexes