Подключаю длл в первый раз к проекту, получаю адрес нужных 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. Отсюда вопрос — есть ли какие-то ограничения на его использование в дллках?
Здесь можно взять исходники самой дллки и проги для ее тестирования.
The stars so gaily glistened... (Fri, 07 Jan 2005 12:51:41 GMT @577)
...while the fading voice of _Lanselot_ whispered through the darkness:
L> класса string. Отсюда вопрос — есть ли какие-то ограничения на его
L> использование в дллках?
М.б. тебе насчет ShareMem почитать? Или ты точно используешь один и тот же
heap manager в exe и в DLL ?
--
WinAMP://none: WinAMP is suffocated
http://Arioch.nm.ru/FL/Fidolook_SL.png
Mail: the)under(Arioch)at(nm)dot(ru ICQ:
xmpp://arioch@jabber.ruPosted via RSDN NNTP Server 1.9
Здравствуйте, Arioch, Вы писали:
A>The stars so gaily glistened... (Fri, 07 Jan 2005 12:51:41 GMT @577)
A>...while the fading voice of _Lanselot_ whispered through the darkness:
L>> класса string. Отсюда вопрос — есть ли какие-то ограничения на его
L>> использование в дллках?
A>М.б. тебе насчет ShareMem почитать? Или ты точно используешь один и тот же
A>heap manager в exe и в DLL ?
A>--
A>WinAMP://none: WinAMP is suffocated
A>http://Arioch.nm.ru/FL/Fidolook_SL.png
A>Mail: the)under(Arioch)at(nm)dot(ru ICQ: xmpp://arioch@jabber.ru
подключаю borlandmm.dll и memmgr.lib и в библиотеку и в сам проект. У меня в исходниках все есть. Или я что-то делаю неправильно?
прочитал
вот этоАвтор: Anatolix
Дата: 18.01.03
и решил попробовать. Заработало. Хотя так и не понял почему. А другого способа нету? Чтобы не включать в проект кучу стандартных борландовских дллек.
Здравствуйте, _Lanselot_, Вы писали:
_L_> А другого способа нету? Чтобы не включать в проект кучу стандартных борландовских дллек.
Прочитайте
примерно то же более подробно.