Re: stl and dll
От: achp  
Дата: 10.08.02 14:12
Оценка:
Здравствуйте Alex_st, Вы писали:

AS>Вот есть такая проблемка:

AS>имеется dll и в ф-я

AS>

AS>#ifdef DLLTEST_EXPORTS
AS>#define TEST_EXPORT __declspec( dllexport )
AS>#else
AS>#define TEST_EXPORT __declspec( dllimport )
AS>#endif

AS>void TEST_EXPORT f(string str)
AS>{
AS>// тут нечто делаем
AS>}
AS>

AS> так вот проблемма в том, что когда я пытаюсь экспортировать енту делелю
AS>компилятор говорит что мол у string нет dll интерфейса,
AS>и если вызывать ее примерно так:
AS>
AS>f("test");
AS>

AS>то все мило падает
AS>может кто знает как это обойтити?

Заклинаю: не делай так! Не используй контейнеры и иные классы STL в межмодульных интерфейсах! Это приводит к головным болям и порче мозгов!

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