Определение lisp через NET и vlx с отдельным именным пространством
Сегодня на работе столкнулись с очень "забавным" моментом. Связан он с определением lisp-функции средствами .NET и работой этой функции в определенных условиях
Итак, определена некая функция примерно следующего вида:
1 2 3 4 5 | [LispFunction("some-fun")] public static void LispSomeFunction(ResultBuffer args) { // чего-то делаем } |
Собираем, загружаем, пишем код на лиспе:
1 | (some-fun "a") |
Проверяем - работает!
Компилируем в fas, проверяем - работает!
Компилируем в vlx с общим именным пространством - работает!
Компилируем в vlx с отдельным именным пространством - и фигушки.
Самостоятельные поиски ни к чему не привели, пришлось обращаться на форум adn-cis, где и было подсказано решение: использовать vl-arx-import.
Если честно, то я всерьез не рассматривал эту функцию, поскольку полагал, что ориентирована она все же на arx-приложения, да и в документации напрямую сказано
Imports ObjectARX/ADSRX functions into a separate-namespace VLX
И тем не менее - все сработало! Очередная благодарность Александру Ривилису