Проблемы с плагином NPAPI в Windows 7 - PullRequest
2 голосов
/ 08 декабря 2010

У меня есть плагин NPAPI, который я написал и некоторое время использовал с Firefox 3.x без проблем.

Объект определен следующим образом -

<object class="someClass" id="pluginobj" type="application/x-plugintype"></object>

Затем я вызываю методы, используя следующий формат -

if( document.getElementById("pluginobj") != null )
{
    document.getElementById("pluginobj").someMethod(someParams));
}

Вот как я понимаю, это должно быть сделано и всегда работало нормально. Однако недавно я установил этот же плагин на компьютер с Windows 7 (с той же версией Firefox), и теперь он не может найти функции, определенные в плагине, поэтому я получаю следующую ошибку -

Ошибка: document.getElementById ("pluginobj"). SomeMethod не является функцией

В плагине вообще ничего не изменилось, эта ошибка возникает для любого вызываемого метода, а не для конкретного, и он по-прежнему работает на компьютерах с Windows XP без проблем.

Очень растерян! Может ли кто-нибудь помочь? Спасибо.

Примечание: Я также пытался войти в мой плагин, и кажется, что он даже не входит в методы NP_Initialize и NP_GetEntryPoints.

Я видел некоторые предположения, что это может быть связано с зависимостями и библиотеками, связанными с плагином, но я не уверен, что может отсутствовать в win 7?

Зависимость Уокер показывает ошибку, говорящую, что «информация о конфигурации рядом друг с другом неверна»?

1 Ответ

0 голосов
/ 08 декабря 2010

Вы ссылаетесь на другие DLL-файлы из своего плагина npapi?Windows 7 работает по-разному в том, как она находит файлы DLL, хотя я не знаю деталей.Когда я видел это с плагинами в прошлом, проблема заключалась в том, что в Windows 7 не удалось найти один из файлов DLL.Вы можете попробовать скопировать dll-файлы зависимостей в каталог system32 (не навсегда, просто чтобы увидеть, в этом ли проблема).Я ожидаю, что там он сможет найти его.

Если это проблема, я, к сожалению, не уверен, как это исправить, но это может помочь.

Другая возможность, основанная наПроблема параллельной конфигурации заключается в том, что ваш проект Visual Studio создает манифест, который сообщает Windows, что ему требуется определенная версия одной из библиотек DLL, которых нет в Windows 7. См .: http://buffered.io/2008/05/17/resolving-side-by-side-configuration-issues/

Я думаю, что я решил эту проблему в плагинах раньше, отключив манифест.Я не уверен;У меня никогда не было этой проблемы с тем, как FireBreath генерирует dll плагина npapi, поэтому мне не нужно было беспокоиться об этом в прошлом году.Вы можете рассмотреть FireBreath , который работает как в IE, так и в Firefox (activex и npapi) и имеет очень хорошее сообщество для отслеживания подобных проблем.

...