Могу ли я создать несколько плагинов в одной DLL с помощью NPAPI? - PullRequest
1 голос
/ 16 января 2012

То, что я видел до сих пор, может быть только один плагин на файл .dll, это правильно?Браузер вызывает NP_GetEntryPoints, NP_Initialize и NP_Shutdown только «один раз» на dll, верно?

Я стремлюсь создать несколько плагинов в одной динамической библиотеке ,Это возможно, и если, как?

1 Ответ

1 голос
/ 16 января 2012

То, что я видел до сих пор, может быть только один плагин на файл .dll, верно?

Нет, в одной DLL может быть реализовано несколько плагинов.

Браузер вызывает NP_GetEntryPoints, NP_Initialize и NP_Shutdown только «один раз» на dll, верно?

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

Я стремлюсь создать несколько плагинов в одной динамической библиотеке.Это возможно, и если, как?

Это возможно.Вы просто регистрируете различные mimetypes для одной и той же динамической библиотеки (например, в Windows несколько записей mimetype в реестре, указывающих на одну и ту же DLL).

NPP_New() получает NPMIMEType в качестве первого параметра, который позволяет вамопределить, какой «плагин» был запрошен.

Также необходимо настроить NP_GetMIMEDescription() (используется в Linux и Mac OS).

В Windows у вас должен быть список mimetypes, разделенных|, в информации о версии (запись MIMEType).

...