2009-02-13 10 views
7

Potrzebuję użyć jakiegoś kodu natywnego i chciałbym wypróbować elisp jako język skryptowy. Czy można wywoływać funkcje natywne zaimplementowane w bibliotece dynamicznej (biblioteka dll w systemie Windows)? Lub jedyną możliwością zrobienia tego jest zaimplementowanie kodu natywnego, zawinięcie go za pomocą makr DEFUN (...) i rekompilacja emacsa?ładowanie biblioteki dynamicznej z elisp

Odpowiedz

12

Nie można dynamicznie ładować biblioteki za pomocą kodu Emacs Lisp. Aby obejść ten problem, zwykle wywołują zewnętrzny program (proces) i kontrolują go, wysyłając do niego polecenia i odczytując jego wyniki.

Na przykład można spojrzeć na śluz, tramp, gnuserv, movemail i kilka innych podobnych hacków.

0

Ta funkcja istnieje tylko w SXEmacs, że nie ma wsparcia dla Windows, ale w Uniksach działa dobrze

6

GNU Emacs 23 ma D-BUS wsparcie. Chociaż jest to przede wszystkim rzecz uniksowa, D-BUS jest obsługiwany w systemie Windows i zapewnia system IPC dla aplikacji na poziomie użytkownika.

Można prawdopodobnie zbudować to, co chcesz z tym.

Powiązane problemy