В моей компании мы недавно перешли с VC9 на VC10.
Мы перенесли наши проекты, но затем ответственный сотрудник сказал нам, что нам придется хранить некоторые базовые общие DLL, скомпилированные с VC9, на наших производственных машинах.в течение некоторого времени.
Эти библиотеки DLL используют пользовательские структуры, некоторые из которых содержат std::vector
, std::map
и так далее.Теперь до меня дошло, что размер стандартных контейнеров изменился: некоторые стали больше, некоторые стали меньше.В результате размер наших пользовательских структур также изменился.
Чтобы решить проблемы, вызванные изменением размера, мой коллега подумал об искусственном увеличении размера наших структур, чтобы дать возможность компенсироватьразмер будущих членов изменяется так, что структуры сохраняют один и тот же размер, независимо от того, какое время выполнения мы используем, что предотвращает повреждение стека при вызовах функций.
Лично я считаю, что это «решение» ужасно, потому что, хотя размер имеет значение, так жемакет конструкций.Для меня увеличение объема памяти всех структур для решения организационных проблем кажется действительно неправильным.
Если коротко, мой вопрос: возможно ли даже использовать одновременно два разных времени выполнения (используя описанный трюк или любой другой?).Другой трюк) при использовании не-C типов в прототипах функций?Есть ли у вас хороший / плохой опыт в отношении аналогичной ситуации?