Определение 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

И тем не менее - все сработало! Очередная благодарность Александру Ривилису :)



Поделитесь своим мнением


Я не робот.