Le allocazioni cross-dll sono ok?
-
08-07-2019 - |
Domanda
Se ho un'app che utilizza almeno due dll, è generalmente sicuro allocare le risorse in una dll e liberarle in un'altra?
Sto pensando specificamente di chiamare fopen e fclose in diverse DLL, ma vorrei anche sapere che è sicuro per altre risorse (puntatori di memoria, handle, ecc ...).
Penso che fintanto che tutto sarà compilato con gli stessi switch, dovrebbe funzionare.
Grazie, Cory
Soluzione
Questa è una brutta cosa (TM) da fare per tutti i progetti tranne che non banali. Funziona in un insieme molto rigoroso di condizioni come la versione delle DLL, il modello di threading, gli allocatori di memoria utilizzati in ciascuno e una serie di altri. Infine, i bug saranno troppo difficili da inseguire.
Altri suggerimenti
Finché stai usando la versione DLL della libreria di runtime C (/ MD o / MDd), allora sì, è sicuro.
Se si collega staticamente il CRT in una DLL (/ MT o / MTd), allora no, non è sicuro.