Проблемы с использованием string в динамических библиотеках
От: _Lanselot_  
Дата: 07.01.05 12:51
Оценка:
Подключаю длл в первый раз к проекту, получаю адрес нужных 2 функций, все нормально работает, если не считать ошибку которую выдает CodeGuard при возврате значения одной из функций. Выгружаю библиотеку, подгружаю ее снова. Получаю адреса функций. Вызываю функции. Обе выполняются без ошибок, но при возврате значения той функции на которой выдавал ошибку CodeGuard прога выдает Exeption. После этого когда ее закрываешь выдается 3 окошка винды с предложением отправить отчет. Помогите пожалуйста найти ошибку. Функции, которые загружаются из библиотеки, это:
vector<cFunction> get_functions(); 
vector<cType> get_types();

я нашел строки, из-за которых вылетает. Даже не строки а действия. Прога вылетает когда я изменяю либо значение у string name в классе cType, либо значение vector<string> arguments в классе cFunctions. если их не изменять все работает.Самое удивительное — в классе cFunction то же и string name. Но его изменять можно как угодно — все работает. А вот поле с тем же типом в cType изменять нельзя. И все глюки возникают из-за класса string. Отсюда вопрос — есть ли какие-то ограничения на его использование в дллках?

Здесь можно взять исходники самой дллки и проги для ее тестирования.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.