Écriture d’une DLL qui charge msvcr80.dll et expose la fonction free () –

J’ai une DLL tierce qui dépend de MSVCR80 et alloue les ressources dont j’ai besoin pour nettoyer. La bibliothèque n’expose pas de fonction free pour cela. Au lieu de cela, je dois charger la même bibliothèque d’exécution et appeler manuellement la fonction free .

En guise de solution de contournement, j’essaie d’écrire une DLL “wrapper” qui charge le bon runtime et expose la fonction free . Cette DLL est créée à l’aide de Visual Studio 2010 et dépend d’une bibliothèque d’exécution distincte. Faire LoadLibrary("msvcr80.dll") échoue avec l’erreur R6034 qui, je suppose, est due à des problèmes manifestes.

Est-il même possible de charger msvcr80.dll en utilisant LoadLibrary ? Dois-je créer un manifeste, l’intégrer à la DLL et stocker msvcr80.dll dans le même répertoire que ma DLL wrapper?

Je me rends compte que c’est une faille dans la bibliothèque tierce partie, mais je suis plutôt coincé avec cette version. Obtenir le vendeur pour résoudre ce problème n’est probablement pas une option.

Il existe probablement de meilleures solutions, mais si tout le rest échouait, vous pourriez trouver quelque part une copie de VC ++ 2005 Express Edition (= gratuit, aucun piratage n’est nécessaire ;) ), qui utilise la version 8.0 du compilateur, et donc le même temps d’exécution. la dll défectueuse.

Ensuite, vous construirez votre dll wrapper avec celui-ci, qui appellerait simplement le free fourni par son CRT (vérifiez bien que vous utilisez la version dll!).