Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 12.05.2011, 16:42   #1
wolfhound512
Знающий
 
Аватар для wolfhound512
 
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений
(для 299 пользователей)
STL export

Всем привет.
Такая задача:
A ) Нужно экспортировать класс из DLL, но методы его работают с std::string. Проблема в том что разные STL между собой не совместимы. Как быть?
  1. писать свои строки
  2. писать обертку для стандартных строк и экспортировать ее
  3. компилировать dll для каждой версии STL (а их наверное не мало?)
B ) Нужно экспортировать класс из DLL, но в ряды его protected членов затесался std::vector. Если его не трогать, то проблем нет. Но если создать производный класс, и обратиться к вектору, то при использовании разных STL видимо получим ошибку.
варианты те же.

Можете что-нибудь подсказать? Может еще какие-нибудь варианты?
__________________
GUI, GUIw512, AlbaLynx, Форум
(Offline)
 
Ответить с цитированием
Старый 12.05.2011, 18:44   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: STL export

хороший вопрос

я думаю лучше по возможности не использовать неперносимые типы на стыке библиотека - клиентская программа

хотя сам так делаю((
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
wolfhound512 (12.05.2011)
Старый 12.05.2011, 18:54   #3
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: STL export

в принципе и стринг и вектор внутри имеют неразрывный линейный массив данных. можно передавать просто указатель на него (string::c_str(), &myVector[0]) и подсовывать (как? не знаю, надо курить) в другой стринг/вектор, желательно без копирования.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
wolfhound512 (12.05.2011)
Старый 12.05.2011, 20:34   #4
wolfhound512
Знающий
 
Аватар для wolfhound512
 
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений
(для 299 пользователей)
Ответ: STL export

в принципе и стринг и вектор внутри имеют неразрывный линейный массив данных. можно передавать просто указатель на него (string::c_str(), &myVector[0]) и подсовывать (как? не знаю, надо курить) в другой стринг/вектор, желательно без копирования.
Если функции будут принимать указатель на массив, то это будут обычные char*, object* и т.п., все удобство STL пропадет.

Хотя может и черт с ним, может стоит отказаться от STL...
__________________
GUI, GUIw512, AlbaLynx, Форум
(Offline)
 
Ответить с цитированием
Старый 10.08.2012, 00:33   #5
Mhyhr
Бывалый
 
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений
(для 858 пользователей)
Ответ: STL export

Таки какие выводы вы сделали за год? Как обходите?
(Offline)
 
Ответить с цитированием
Старый 10.08.2012, 01:09   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: STL export

не экспортирую стл (и вообще шаблонные типы).
стл используется внутри ядра - а наружу торчат простые типы, структуры и указатели.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mhyhr (10.08.2012)
Старый 10.08.2012, 08:21   #7
wolfhound512
Знающий
 
Аватар для wolfhound512
 
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений
(для 299 пользователей)
Ответ: STL export

Сообщение от HolyDel Посмотреть сообщение
не экспортирую стл (и вообще шаблонные типы).
стл используется внутри ядра - а наружу торчат простые типы, структуры и указатели.
Аналогично. Но я экспортирую шаблонный класс - свои строки, т.к. в некоторых случаях необходимо, чтобы пользователь выделил память под получаемую строку. И чтобы с этим небыло заморочек, он просто создает экземпляр моего класса и передает в функцию.
В остальных случаях аналогично: наружу торчат простые типы, структуры и указатели.
__________________
GUI, GUIw512, AlbaLynx, Форум
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mhyhr (10.08.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com