Russian Qt Forum

Qt => Общие вопросы => Тема начата: chief от Май 06, 2006, 11:22



Название: Плагины в qt-4.1.1
Отправлено: chief от Май 06, 2006, 11:22
добрый день дамы и господа. Возникла такая проблема. есть проэкт, который состоит из основного приложения, плагинов и прослоичной либины в которую вынесены общие компоненты. сия конструкция прикрасно себя чувствует под линухом, но не работает под виндами - не отрабатывает QPluginLoader::instance. Может кто наступал на эти грабли?
вот соответствующие pro-файлы

это от библиотеки:
Код:

TEMPLATE = lib
CONFIG += plugin
HEADERS = defines.h \
                  testplugin.h
SOURCES = testplugin.cpp
TARGET = pnp_basictools
DESTDIR = ../TestPluginLoader/plugins
LIBS += -L../lib -llibina


это приложение:
Код:

TEMPLATE = app
TARGET = TestPluginLoader
DESTDIR = ./Debug

MOC_DIR += ./GeneratedFiles/debug

OBJECTS_DIR = debug

LIBS += -L../lib -llibina

#Include file(s)
include(TestPluginLoader.pri)



и наконец плугин:
Код:

TEMPLATE = lib
CONFIG  += plugin
HEADERS = defines.h \
                  testplugin.h
SOURCES = testplugin.cpp
TARGET  = pnp_basictools
DESTDIR = ../TestPluginLoader/plugins
LIBS += -L../lib -llibina



всем спасибо


Название: Плагины в qt-4.1.1
Отправлено: bigirbis от Май 12, 2006, 10:53
Народ, такая же хрень!!!
Помогите, please!!!


Название: Плагины в qt-4.1.1
Отправлено: Admin от Май 12, 2006, 11:01
вы отладчиком загрузку DLL пробовали проходить
уверен много интересного узнаете!


Название: Плагины в qt-4.1.1
Отправлено: Sergeich от Май 12, 2006, 16:59
Скорей всего в "прослоичной либине" не поставлены макросы к-ые под вынь преобразуются в __declspec(dllexport).
Код:
#ifdef Q_WS_WIN
  #ifdef JA_V_AHUE
    #define FTOPKU __declspec(dllexport)
  #endif
#else
    #define FTOPKU
#endif
...

class FTOPKU MyClass
{
...
};


Название: Плагины в qt-4.1.1
Отправлено: chief от Май 15, 2006, 10:47
там есть вот что
Код:

#if defined(Q_OS_WIN)
#ifdef BUILD_DLL
#define EXPORT Q_DECL_EXPORT
#else
#define EXPORT Q_DECL_IMPORT
#endif
#else
#define EXPORT
#endif

имхо так оно складней ;)