Russian Qt Forum

Qt => Общие вопросы => Тема начата: xokc от Июль 16, 2010, 13:37



Название: Путь к plugin dll из самого plugin
Отправлено: xokc от Июль 16, 2010, 13:37
Как внутри самого плагина получить имя dll этого самого плагина? В Windows это делается через GetModuleFileName(hInstance, ...), где hInstance получается из аргументов в dllmain. А как это можно сделать в Qt?


Название: Re: Путь к plugin dll из самого plugin
Отправлено: NicK от Июль 19, 2010, 22:26
можно сделать следующим образом:

определять путь к файлу плагина при его загрузке в самом приложении и передавать этот путь в плагин.

Объявление класса интерфейса:
Код:
        
        ...

class IPlugin
{
        public:
            virtual ~IPlugin() {}

        ...

            virtual void initPlugin(const QStringList &strlstParameters) = 0;

        ...

};

Где-нибудь самом приложении при подключении плагина, передаем туда те параметеры, которые нам нужно:
Код:
        ...

        plug->initPlugin(sendParameters2Plugin());

        ...

В самом плагине:
Код:
        ...

void myPlugin::initPlugin(const QStringList &strlstParameters)
{
        ...
        //получаем путь к плагину из переданных из приложения параметров
        ...
}
        ...


Название: Re: Путь к plugin dll из самого plugin
Отправлено: xokc от Июль 20, 2010, 21:22
Да это-то вариант очевиден. Сейчас примерно так и сделано. Но как-то корявенько все это.