Я знаю, что что-то новое в одном модуле и удаление его в другом может часто вызывать проблемы в VС++. Проблемы с разными режимами работы. Смешивающие модули со статически связанными режимами работы и/или динамически связанными несоответствиями версиями оба могут закручивать содержимое, если я правильно помню.
Однако безопасно ли использовать VС++ 2008 std:: tr1:: shared_ptr через модули?
Поскольку существует только одна версия среды выполнения, которая даже знает, что такое shared_ptr, статическая привязка - моя единственная опасность (на данный момент...). Я думал, что прочитал, что более эффективная версия shared_ptr была безопасна в использовании, но я использую версию Редмонда...
Я пытаюсь избежать специального вызова свободных объектов в распределяющем модуле. (или что-то вроде "удалить это" в самом классе). Если все это кажется немного взломанным, я использую это для модульного тестирования. Если вы когда-либо пытались использовать unit test существующий код на С++, вы можете понять, как объявление вам нужно время от времени. Моя память выделяется EXE, но в конечном итоге будет освобождена в DLL (если подсчет ссылок работает так, как я думаю).