загрузить динамическую библиотеку из elisp - PullRequest
7 голосов
/ 13 февраля 2009

Мне нужно использовать некоторый нативный код, и я хотел бы попробовать elisp в качестве языка сценариев. Можно ли вызвать собственные функции, которые реализованы в динамической библиотеке (DLL в Windows)? Или единственная возможность сделать это - реализовать собственный код, обернуть его макросами DEFUN (...) и перекомпилировать emacs?

Ответы [ 3 ]

12 голосов
/ 13 февраля 2009

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

В качестве примера вы можете посмотреть на slime, tramp, gnuserv, movemail и некоторые другие подобные хаки.

6 голосов
/ 13 февраля 2009

GNU Emacs 23 имеет поддержку D-BUS . Несмотря на то, что D-BUS в основном работает в Unix, он поддерживается в Windows и предоставляет систему IPC для приложений уровня пользователя.

Вы могли бы, вероятно, построить то, что вы хотите с этим.

0 голосов
/ 13 февраля 2009

Эта функция существует только в SXEmacs, которая не поддерживает Windows, но в Unixes работает нормально

...