Как написать плагин C ++ для FireFox 3 (не расширение) для Windows?

StackOverflow https://stackoverflow.com/questions/62977

  •  09-06-2019
  •  | 
  •  

Вопрос

Может ли кто-нибудь написать пошаговое руководство по разработке плагина на основе C ++ для FireFox в Windows?

Ссылки и примеры на http://www.mozilla.org/projects/plugins/ все они старые и неточные - "НОВАЯ" ссылка была добавлена на страницу в 2004 году.

Примером может быть что угодно, но я думал о плагине, который позволяет JavaScript задавать имя, а затем отображает "Hello {Name}".Чтобы показать двустороннюю связь, у него могло бы быть свойство, которое возвращает полное приветствие.

Хотя это и не так важно, было бы неплохо, если бы плагин работал и в Chrome.

Это было полезно?

Решение

Смотрите также http://developer.mozilla.org/en/Plugins .И да, плагины NPAPI также должны работать в Google Chrome.

[правка 2015:Chrome скоро удалит поддержку NPAPI http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html ]

Другие советы

Если вам нужно что-то, что работает в кроссбраузерном режиме (firefox и ie), вы могли бы посмотреть firebreath: http://www.firebreath.org

Для получения общей информации "как создать плагин npapi в Windows" у меня есть несколько сообщений в блоге на эту тему (ссылки также взяты из некоторых вышеупомянутых источников).

http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

Однако я действительно рекомендую firebreath, поскольку мы создали его именно для людей, у которых нет времени на месяцы (буквально) исследований, которые потребовались нам, чтобы понять, как все это работает.Однако, если вы не хотите использовать его в качестве основы для своего плагина, вы все равно можете найти там много хороших примеров кода.

должно работать в Chrome, Firefox и safari и в Windows тоже!=]

удачи вам!

Создать плагин с помощью NPAPI довольно просто.Ключевыми заголовочными файлами, которые вам понадобятся из дистрибутива Gecko, являются npapi.h и npupp.h.Вы будете экспортировать функции из вашей подключаемой библиотеки DLL или общей библиотеки с именами NP_Initialize, NP_Shutdown, NP_GetMIMEDescription и NP_GetValue, и вам также нужно будет заполнить таблицу символов, предоставленную вам в вызове NP_Initialize, обработчиками для всех функций NPP.

Ключевыми функциями для реализации из этого набора являются NPP_New и NPP_Destroy .Они определяют жизненный цикл экземпляра плагина.Если вы собираетесь обрабатывать медиафайл, связанный из <object> или <embed>, вам также нужно будет использовать NPP_NewStream, NPP_WriteReady, NPP_Write и NPP_DestroyStream, чтобы ваш плагин мог получать данные файла из браузера.В нем еще много чего есть. руководство разработчика плагина Gecko.

Посмотрите на Никсису http://code.google.com/p/nixysa/.Я попытался создать образцы в Mozilla SDK, но их было сложно создать.Образец Nixysa прост в изготовлении.Плюс код намного аккуратнее, чем при непосредственном использовании NPAPI.Единственным недостатком является то, что на сегодняшний день Nixysa недостаточно хорошо документирована.У меня есть образец Nixysa, который реализует обратные вызовы, если вы этого хотите (я планирую отправить патч в Nixysa, когда у меня до этого дойдет время).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top