crossplatform.ru

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

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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
niXman
  опции профиля:
сообщение 4.10.2009, 16:57
Сообщение #2


Участник
**

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

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




Репутация:   0  


Проведу эксперимент. Отпишусь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 4.10.2009, 17:34
Сообщение #3


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

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

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




Репутация:   44  


Цитата(niXman @ 4.10.2009, 17:57) *
Проведу эксперимент. Отпишусь.


tree.h
template<class T>
class Tree
{
    ...
};


objectstree.h
#include <tree.h>

class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*>
{
};

Это декларация нового типа (класса), код для него генерироваться не будет.
Для его использования компилятору потребуется сам файл objectstree.h и файл с описание шаблона tree.h, который включается в objectstree.h
А весь код будет разворачиваться в пользовательских файлах, где будет использоваться (создаваться) объект класса ObjectsTree.

А вот если в класс ObjectsTree добавить методы, например appendObject(), removeObject(), тогда эти методы попадут в библиотеку и будут экспортированы. Также там развернутся все необходимые методы шаблона Tree, если будут использоваться.

Сообщение отредактировал BRE - 4.10.2009, 18:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 4.10.2009, 21:26
Сообщение #4


Участник
**

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

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




Репутация:   1  


Спасибо за подробный и наглядный ликбез)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Elfinit   Запаковка в dll шаблонных классов   3.10.2009, 0:14
- - BRE   Цитата(Elfinit @ 3.10.2009, 1:14) В a-фай...   3.10.2009, 8:40
|- - Elfinit   Цитата(BRE @ 3.10.2009, 9:40) Цитата(Elfi...   3.10.2009, 11:01
|- - BRE   Цитата(Elfinit @ 3.10.2009, 12:01) Неужел...   3.10.2009, 11:46
|- - Elfinit   Цитата(BRE @ 3.10.2009, 12:46) Цитата(Elf...   3.10.2009, 12:18
|- - BRE   Цитата(Elfinit @ 3.10.2009, 13:18) А поче...   3.10.2009, 12:24
|- - Elfinit   Цитата(BRE @ 3.10.2009, 13:24) Не знаю, н...   3.10.2009, 13:16
- - Litkevich Yuriy   Цитата(Elfinit @ 3.10.2009, 15:01) Неужел...   3.10.2009, 15:22
- - niXman   Это в стандарте С++ прописано. Qt не исключение.   3.10.2009, 15:32
- - Litkevich Yuriy   Вот связанные темы можно почитать: Тема на форуме ...   3.10.2009, 15:34
|- - Elfinit   Всё, всё, с шаблонами понятно, сори за неграмотнос...   3.10.2009, 17:19
|- - BRE   Цитата(Elfinit @ 3.10.2009, 18:19) Мне те...   3.10.2009, 18:00
- - Elfinit   Цитата(BRE @ 3.10.2009, 19:00) Я правильн...   3.10.2009, 18:37
|- - BRE   Цитата(Elfinit @ 3.10.2009, 19:37) Цитата...   3.10.2009, 18:49
- - niXman   Цитата(BRE @ 3.10.2009, 19:49) Ты деклари...   3.10.2009, 19:54
|- - BRE   Цитата(niXman @ 3.10.2009, 20:54) Я даже ...   3.10.2009, 19:56
- - Elfinit   Как же так, в базовом классе же есть методы) Ладно...   3.10.2009, 21:38
- - niXman   Цитата(Elfinit @ 3.10.2009, 22:38) Как же...   4.10.2009, 0:22
|- - BRE   Цитата(niXman @ 4.10.2009, 1:22) Я говори...   4.10.2009, 8:35
- - Elfinit   Цитата(niXman @ 4.10.2009, 1:22) то такое...   4.10.2009, 0:29
- - niXman   Проведу эксперимент. Отпишусь.   4.10.2009, 16:57
- - BRE   Цитата(niXman @ 4.10.2009, 17:57) Проведу...   4.10.2009, 17:34
- - Elfinit   Спасибо за подробный и наглядный ликбез)   4.10.2009, 21:26


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.6.2025, 20:15