0

Je développe un SDK, et nous avons des clients qui sont codantes toujours avec VC++ 6, tandis que d'autres utilisent Visual Studio 2005 et d'autres à 2008.Une application créée avec Visual C++ 6 peut-elle utiliser une DLL créée avec Visual Studio 2008?

Actuellement, nous construisons plusieurs saveurs de notre SDK, où nous construisons la exactement le même code source avec chacun de ces compilateurs. Je veux savoir si c'est vraiment nécessaire. Est-il sûr de construire notre SDK (qui prend la forme de DLL) avec VS2008 et attendons-nous que nos clients qui utilisent VC++ 6 puissent l'utiliser sans problèmes?

Répondre

2

Dépend. Est-ce que votre DLL dépend de l'exécution VC, MFC ou ATL? Si c'est le cas, vos clients devront distribuer ces DLL. Votre DLL exporte-t-elle les structures/classes/fonctions C++? Il n'y a pas d'ABI standardisé pour C++, donc ils peuvent ou non travailler avec d'autres compilateurs. Si votre DLL n'exporte que le style externe "C" {}, tout ira bien.

0

Il est assez sûr si vous n'autorisez pas le programme du client à supprimer la mémoire allouée dans votre SDK. Et vice versa.

0

Si la DLL a une API C pure, votre exécutable ne libèrera jamais aucune ressource allouée par la DLL (et vice versa), alors cela devrait fonctionner.

Questions connexes