2009-05-07 9 views
0

Si j'ai une application qui utilise au moins deux DLL, est-il généralement sûr d'allouer des ressources dans une DLL et de les libérer dans une autre DLL? Je pense en particulier à appeler fopen et fclose dans différentes DLL, mais je voudrais aussi savoir qu'il est sûr pour d'autres ressources (pointeurs de mémoire, poignées, etc ...).Les allocations cross-dll sont-elles correctes?

Je pense que tant que tout est compilé avec les mêmes commutateurs, cela devrait fonctionner.

Merci, Cory

Répondre

3

C'est un Bad Thing (TM) à faire pour tous les projets, mais non triviales. Cela fonctionne sous un ensemble très strict de conditions comme la version des dlls, le modèle de threading, les allocateurs de mémoire utilisés dans chacun et une foule d'autres. Enfin, les bugs seront trop difficiles à chasser.

0

Tant que vous utilisez la version DLL de la bibliothèque d'exécution C (/ MD ou/MDd) alors oui, il est sûr.

Si vous liez statiquement le CRT en DLL (/ MT ou/MTd) alors non, ce n'est pas sûr.

Questions connexes