Я столкнулся с подобной проблемой, но с плагинами Acrobat.
При настройке наших плагинов Acrobat для Acrobat X (10) нам пришлось удалить код, связанный с ADM (Acrobat Dialog Manager - раньше использовался как кроссплатформенная инфраструктура графического интерфейса в Acrobat 7, 8 и 9. Удалено с помощью Acrobat X) и использовать другой GUI Framework.
В состав Acrobat SDK входят примеры использования wxWidgets в качестве кроссплатформенной инфраструктуры, поэтому мы пошли по этому пути (мы поддерживаем MAC и Windows).
Архитектура плагинов Acrobat очень похожа на ту, что вы описали выше: dlls (для плагинов Acrobat расширение двоичного файла - * .api), которые динамически загружаются основным процессом (exe), а их функции вызываются в документированном, предварительно определенный порядок.
Поскольку пример Acrobat wxWidgets был написан для версии 2.8.12, и в связи с тем, что это стабильная версия, мы решили НЕ использовать текущую версию 2.9.x.
Таким образом, мы статически связали наши плагины (всего 3 разных плагина) с библиотеками wx2.8.12 и выяснили, что, если установлены 3 из них, те, что были загружены последними, не работают. Под этим я подразумеваю - наши пользовательские wxFrames, wxWindows & wxDialogs, принадлежащие этим двум плагинам, были испорчены (как кто-то пытался стереть их с помощью резины: -)).
Глубоко копаясь, мы сузили его до того факта, что первый загружаемый плагин инициализирует wxWidgets, а второй - нет, хотя явный вызов wxInitialize (). Что-то там пошло не так ....
Здесь я забыл упомянуть - в плагине Acrobat вы не можете изменить функцию DllMain (), поэтому инициализация wx выполняется в «Plugin Init () function».
Просто чтобы прояснить: библиотеки wx статически связаны с файлами * .api, поэтому каждый из них должен иметь свою собственную "копию" и не влиять друг на друга.
Используя Google в течение 2-3 полных дней, мне удалось найти эту запись
, который предложил применить этот патч (ТОЛЬКО для 2.8x !!!). Я полагаю (или надеюсь), что версия 2.9.x не страдает от этой проблемы (не было возможности проверить это).
Кстати: патч - это всего лишь один файл, который очень понятен, поэтому прочитать код, чтобы понять его и быть спокойным, что он не причиняет вреда, довольно легко.
Я надеюсь, что другие, использующие wx 2.8.x и страдающие той же проблемой, найдут это.
Омри