Я знаю, что новое-что-то в одном модуле и удаление его в другом часто может вызывать проблемы в VC++. Проблемы с разными режимами работы. Смешивающие модули со статически связанными режимами работы и/или динамически связанными несоответствиями версиями оба могут закручивать содержимое, если я правильно помню.Можно ли использовать STL (TR1) shared_ptr между модулями (exes и dlls)
Тем не менее, можно ли использовать VC++ 2008 std :: tr1 :: shared_ptr через модули?
Поскольку существует только одна версия среды выполнения, которая даже знает, что такое shared_ptr, статическая привязка - моя единственная опасность (на данный момент ...). Мне показалось, что я читал, что версия boost_ptr для boost была безопасна для использования, но я использую версию Редмонда ...
Я пытаюсь избежать специального вызова свободных объектов в распределительном модуле , (или что-то вроде «удалить это» в самом классе). Если все это кажется немного взломанным, я использую это для модульного тестирования. Если вы когда-либо пробовали тестировать существующий код на C++, вы можете понять, как creative вам нужно время от времени. Моя память выделяется EXE, но в конечном итоге будет освобождена в DLL (если подсчет ссылок работает так, как я думаю).
Я управляю двумя задействованными модулями, поэтому я буду в порядке, даже если shared_ptr имеет эти ограничения. Но я не хочу этого делать, если это может быть плохо. – Aardvark 2008-12-05 21:35:33
Я регулярно использую несколько модулей, где ресурсы выделены в одном из них и выпущены в другом. – dalle 2008-12-05 22:05:37
Важной частью является * если модули используют точно такую же библиотеку времени выполнения *. Даже смешение отладочных и выпускных сборок - верный билет в ад. – MP24 2009-10-12 18:49:27