Страницы: 1
Наряду с папкой chrome нужно создать папку components (в корне xpi-архива). А затем в нее положить саму xpcom-компоненту (.dll, .so) и (если она еще реализует пользовательские интерфейсы, то и библиотеку типов (файл .xpt)). В таком варианте компонента будет автоматически зарегестрирована при установке расширения.
Отсутствует
ок, сам компонент регистрируется и работает.
что мне необходимо сделать, чтобы third party dll, который в компоненте подгружается через LoadLibrary() оказался в том месте, в котором его найдет ff3?
в profiles/xxx/extensions/zzz/components/ он его не находит.
спасибо.
Отсутствует
Есть два варианта:
1) Указать абсолютный путь. Лучше всего грузить с помощью LoadLibraryEx с флагом LOAD_WITH_ALTERED_SEARCH_PATH. В таком случае не будет проблем, если сторонняя библиотека будет статически связана еще с какими при условии, что все они находятся в одной директории. Но функция доступна начиная с Wndows 2000.
2) Разместить стороннюю библиотеку по одному из путей доступных системе. Для Windows XP SP2 это:
1. Директория в которой находиться приложение (firefox.exe).
2. Текущая директория (можно переустановить с помощью SetCurrentDirectory).
3. Системная директория.
4. 16-битная системная директория.
5. Директория Windows.
6. Директории указанные в системной переменной PATH.
Firefox, очевидно не использует LoadLibraryEx с флагом LOAD_WITH_ALTERED_SEARCH_PATH для загрузки XPCOM-компонент, поэтому и не может найти dll в components профиля.
Отсутствует
Страницы: 1