crossplatform.ru

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

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
Elfinit
  опции профиля:
сообщение 3.10.2009, 17:19
Сообщение #11


Участник
**

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

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




Репутация:   1  


Всё, всё, с шаблонами понятно, сори за неграмотность) Мне теперь больше интересно, почему конструкция типа
class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*> {
};

не срабатывает, т.е. класс не становится экспортируемым. Я не хочу, чтобы класс использовал сигналы и слоты, т.е. moc для него не будет использоваться. В проекте уже есть классы, унаследованные от шаблонных, и они нормально экспортируются/импортируются. Например:
class EXIFMODULE_EXPORT QMetadataRecord
{...
};
class EXIFMODULE_EXPORT QMetadata : public QMap<QString,QMetadataRecord*>
{  ...
};

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.10.2009, 18:00
Сообщение #12


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

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

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




Репутация:   44  


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

не срабатывает, т.е. класс не становится экспортируемым. Я не хочу, чтобы класс использовал сигналы и слоты, т.е. moc для него не будет использоваться.

Я правильно понимаю, что это все (полное) описание класса (между { } ничего нет)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 3.10.2009, 18:37
Сообщение #13


Участник
**

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

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




Репутация:   1  


Цитата(BRE @ 3.10.2009, 19:00) *
Я правильно понимаю, что это все (полное) описание класса (между { } ничего нет)?

Правильно. А это принципиально?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.10.2009, 18:49
Сообщение #14


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

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

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




Репутация:   44  


Цитата(Elfinit @ 3.10.2009, 19:37) *
Цитата(BRE @ 3.10.2009, 19:00) *
Я правильно понимаю, что это все (полное) описание класса (между { } ничего нет)?

Правильно. А это принципиально?

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

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 3.10.2009, 19:54
Сообщение #15


Участник
**

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

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




Репутация:   0  


Цитата(BRE @ 3.10.2009, 19:49) *
Ты декларируешь класс (не используешь).

Я даже полагаю что компилятор не сгенерирует объектный код для этого.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.10.2009, 19:56
Сообщение #16


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

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

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




Репутация:   44  


Цитата(niXman @ 3.10.2009, 20:54) *
Я даже полагаю что компилятор не сгенерирует объектный код для этого.

Он точно не сгенерирует. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 3.10.2009, 21:38
Сообщение #17


Участник
**

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

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




Репутация:   1  


Как же так, в базовом классе же есть методы)
Ладно, ладно, пристыдили, признаю))))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 4.10.2009, 0:22
Сообщение #18


Участник
**

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

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




Репутация:   0  


Цитата(Elfinit @ 3.10.2009, 22:38) *
Как же так, в базовом классе же есть методы)

Я говорил про шаблонный класс. А этот:
Цитата(Elfinit @ 3.10.2009, 22:38) *
class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*> { };

должен экспортироваться.
Что такое MYMATHSHARED_EXPORT ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 4.10.2009, 0:29
Сообщение #19


Участник
**

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

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




Репутация:   1  


Цитата(niXman @ 4.10.2009, 1:22) *
то такое MYMATHSHARED_EXPORT ?

#if defined(MYMATH_LIBRARY)
#define MYMATHSHARED_EXPORT Q_DECL_EXPORT
#else
#define MYMATHSHARED_EXPORT Q_DECL_IMPORT
#endif

Стандартный макрос, создаваемый QtCreator при создании shared library.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 4.10.2009, 8:35
Сообщение #20


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

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

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




Репутация:   44  


Цитата(niXman @ 4.10.2009, 1:22) *
Я говорил про шаблонный класс. А этот:
Цитата(Elfinit @ 3.10.2009, 22:38) *
class MYMATHSHARED_EXPORT ObjectsTree : public Tree<QObject*> { };

должен экспортироваться.

А какие символы он должен экспортировать? Точнее какой код должен попасть в библиотеку?
А какой код должен сгенерироваться для следующего кода?
typedef Tree<QObject*> ObjectTree;


Сообщение отредактировал BRE - 4.10.2009, 8:44
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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