Когда я использую CreateProcess
для запуска приложения (InDesign), которое загружает мой плагин, мой плагин не загружается, потому что DLL, которую использует мой плагин, не может быть загружен. Странно то, что если я дважды щелкну по приложению или открою его из командной строки, мой плагин загрузится нормально.
Мое приложение, которое вызывает CreateProcess
, довольно большое и само использует несколько библиотек DLL, некоторые из которых также используются моим плагином. Я сузил его до DLL, которая не будет загружаться. Я установил задержку загрузки, плагин теперь загружается, но не загружает эту DLL при вызове.
Я использовал «Process Explorer», чтобы проверить PATH приложения, чтобы убедиться, что он такой же, как когда я открываю его из командной строки. Путь к DLL проблемы находится в окружении PATH, то же самое относится и к другим DLL, которые нормально загружаются.
Я запускаю много разных приложений с моими плагинами и без них и никогда раньше не видел ничего подобного.
Кто-нибудь знает, что может происходить?
Упс ...
Ну, я ошибался насчет env PATH, он отличался в зависимости от того, как было запущено приложение (InDesign). Похоже, QuickTime изменяет путь для моего приложения, помещая его папку «Apple Application Support» вверху. Внутри этой папки находится DLL с тем же именем, что и используемая мной, а именно libxml2.dll. Когда я загружаю libxml2.dll в свой плагин с помощью LoadLibrary, msvcr80.dll не может быть найден. Шиш.
Извините за отвлечение ...