Я попробовал использовать такой хак, чтобы обойти проблемы с возвратом STL объектов из DLL:
class DLLEXPORT C
{
public:
std::string getName()
{ return std::string(internal_getName());}
private:
const char * internal_getName();
};
В релизе все инлайнится и работает как надо, в дебаге — вызвается реализация C::getName() в DLL и, соответственно, падает в деструкторе string.
Причины ясны и всё логично, вопрос — нет ли у кого-нибудь идей, как допилить этот метод до надежной работы? Подозреваю, что вариантов нет.