Могу ли я вызвать SetCurrentDirectory из кода плагина NPAPI в многопоточной среде? - PullRequest
0 голосов
/ 17 марта 2011

Мне нужно загрузить плагины gstreamer из плагина NPAPI, не добавляя путь плагина к Переменные среды PATH и без использования реестра плагинов GStreamer.

Единственный метод, который я нашел для работы:
Вызов Windows API SetCurrentDirectory,
Загрузка каждого плагина с помощью gst_plugin_load_file,
Вызов SetCurrentDirectory восстановить исходный каталог (обычно исполняемая папка браузера).
Есть ли проблема в использовании этого метода в многопоточном режиме?

Ответы [ 2 ]

1 голос
/ 17 марта 2011

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

gst_plugin_load_file выглядит так, как будто он должен поддерживать абсолютные пути - это будетправильный путь.

0 голосов
/ 19 марта 2011

Спасибо за ответы.Я думаю, что нашел лучший способ:Вместо SetCurrentDirectory я вызываю SetDllDirectory.После загрузки плагинов gstreamer я вызываю SetDllDirectory (NULL),для того, чтобы восстановить порядок поиска DLL по умолчанию.

...