Плагин фреймворк, передача параметров, c ++, dll, gdi +

0

Я создаю платформу плагинов, как указано в учебнике, введите описание ссылки здесь

Здесь класс PluginInterface выглядит

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

      virtual int Activate()=0;
      virtual int Execute()=0;
      virtual int Destroy()=0;
};

Вместо этого я хочу, чтобы мой класс плагина был следующим:

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

      virtual int Process(Image *)=0;

};

Возможно ли, что я смогу передать Image * из моего приложения в плагин, и плагин может сделать некоторую обработку на нем?

Изображение - объект gdiplus. Мое мышление заключается в том, что плагин dll будет загружен в том же пространстве памяти, что и в applicaiton, поэтому, если мое приложение выделяет память для объекта Image, так что должно быть доступно и для плагина, и плагин может выполнять операции над этим изображением.

Если это возможно, тогда мне нужно статически связать плагин с gdiplus.lib, используя

#pragma comment(lib, "gdiplus.lib")

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

Теги:
dll
plugins
gdi+

1 ответ

0

Это потребуется, если вы вызовете любые функции gdiplus.dll из своего плагина и скомпилируете плагин отдельно от своего хост-приложения.

И, честно говоря, это называется неявным динамическим связыванием, а не статичным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню