четверг, 20 октября 2011 г.

ненависти псто

мне тут давеча пришлось сопрягать свою замечательную прогу, написанную на устаревшем (как мне было замечено, бгг) visual c++ 2008 с внешней .dll, написанной на новомодной visual c++ 2010
Оно не сопрягается наглухо и вообще MS кажется полностью забили на обратную совместимость своих компиляторов. Например у них теперь std::string бинарно различаются в разных версиях. Что характерно names mangling при этом не поменялся и оно спокойно себе линкуется, только падает потом во всяких непредсказуемых местах. Коммерческий продукт, ага, хуже gcc.
API design for C++, угу-угу
Ненависть, ненависть, ненависть

2 комментария:

  1. дык всегда так было, хочешь совместимости - никаких STL контейнеров в апи, только интерфейсы. начиная с 2005 студии можно вообще одним макросом че-то-там-про-дебаг-итераторов изменить sizeof(std::string), вот это был апофеоз, да

    ОтветитьУдалить
  2. по моему это адовый маразм, органический присущий c++ - внутри проги объекты - first class типы, а наружу их нельзя без геморроя передавать даже на одной версии компилятора

    ОтветитьУдалить