crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Запаковка в dll шаблонных классов
Elfinit
  опции профиля:
сообщение 3.10.2009, 0:14
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Пытался запаковать в dll шаблонный класс, навроде
template <class T> class MYMATHSHARED_EXPORT Tree {
};

В итоге использовать данный класс из библиотеки не получается, т.е. он не является экспортируемым. В a-файле никаких ссылок на методы класса нет.
Пытался унаследовать от него с заданием типа:
class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*> {
};

Тоже ничего не получается.
В qt-библиотеках вроде как полно шаблонных классов и подобных проблем не возникает. Как поступить в данной ситуации?

Сообщение отредактировал Elfinit - 3.10.2009, 0:16
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.10.2009, 8:40
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Elfinit @ 3.10.2009, 1:14) *
В a-файле никаких ссылок на методы класса нет.

Какие методы должны попасть в библиотеку, если это шаблон?
Код будет генерироваться при разворачивании шаблона.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 3.10.2009, 11:01
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Цитата(BRE @ 3.10.2009, 9:40) *
Цитата(Elfinit @ 3.10.2009, 1:14) *
В a-файле никаких ссылок на методы класса нет.

Какие методы должны попасть в библиотеку, если это шаблон?
Код будет генерироваться при разворачивании шаблона.

Т.е. нет никакой возможности сделать библиотеку шаблонных классов? А qt-шники как это делают? Неужели в заголовках весь код шаблона прописывают?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.10.2009, 11:46
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Elfinit @ 3.10.2009, 12:01) *
Неужели в заголовках весь код шаблона прописывают?

Конечно, это же шаблон. Код будет генерироваться только при конкретизации параметров шаблона.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 3.10.2009, 12:18
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Цитата(BRE @ 3.10.2009, 12:46) *
Цитата(Elfinit @ 3.10.2009, 12:01) *
Неужели в заголовках весь код шаблона прописывают?

Конечно, это же шаблон. Код будет генерироваться только при конкретизации параметров шаблона.

А почему не срабатывает конструкция типа:
class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*> {
};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.10.2009, 12:24
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Elfinit @ 3.10.2009, 13:18) *
А почему не срабатывает конструкция типа:
class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*> {
};

Не знаю, нужно смотреть код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 3.10.2009, 13:16
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Цитата(BRE @ 3.10.2009, 13:24) *
Не знаю, нужно смотреть код.

Ошибка выводится такая же, как при попытке воспользоваться шаблонным классом - undefined reference to...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.10.2009, 15:22
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Elfinit @ 3.10.2009, 15:01) *
Неужели в заголовках весь код шаблона прописывают?
да, и у тролей было такое замечание.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 3.10.2009, 15:32
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


Это в стандарте С++ прописано. Qt не исключение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.10.2009, 15:34
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Вот связанные темы можно почитать:
Тема на форуме
Почему в Qt для сигналов и слотов не используются шаблоны
Academic Solutions to Academic Problems
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 9:42