Вызов Lisp-функции из Arx-приложения

Автор Тема: Вызов Lisp-функции из Arx-приложения  (Прочитано 15173 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alxd

  • ADN Club
  • **
  • Сообщений: 78
  • Карма: 2
Re: Вызов Lisp-функции из Arx-приложения
« Ответ #15 : 01-12-2020, 17:28:08 »
В таком виде заработало.
Код - C++ [Выбрать]
  1.         _stprintf(
  2.                 cmdstr,
  3.                 _T("(%s (list '(\"h\" . %d) '(\"nFlags\" . %d) '(\"PROMPT\" . \"%s\") '(\"DIR\" . \"%s\") '(\"NAME\" . \"%s\") '(\"TYPE\" . \"%s\") '(\"pnChoice\" . %d) '(\"pbReadOnly\" . %d) '(\"pszWSTags\" . \"%s\")))"), _T("AlxdSelectFileProc"),
  4.                 (int)h,
  5.                 nFlags,
  6.                 prompt,
  7.                 dir2,
  8.                 name,
  9.                 type,
  10.                 (int)pnChoice,
  11.                 (int)pbReadOnly,
  12.                 pszWSTags2
  13.         );
  14.  

Как-то не подумал я сразу про кавычки.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызов Lisp-функции из Arx-приложения
« Ответ #16 : 01-12-2020, 17:32:05 »
В таком виде заработало.
Так и оставь. А то потом будешь еще думать не только о том как вызвать из native C++ managed C#, но и еще о том, как туда параметры передать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Alxd

  • ADN Club
  • **
  • Сообщений: 78
  • Карма: 2
Re: Вызов Lisp-функции из Arx-приложения
« Ответ #17 : 02-12-2020, 21:38:03 »
Такое впечатление, что в AutoCAD 2020 функция acedEvaluateLisp изменилась. Бред конечно, но fatal error выдает.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызов Lisp-функции из Arx-приложения
« Ответ #18 : 02-12-2020, 22:14:42 »
Такое впечатление, что в AutoCAD 2020 функция acedEvaluateLisp изменилась. Бред конечно, но fatal error выдает.
А почему бы тебе не использовать acedInvoke() ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Alxd

  • ADN Club
  • **
  • Сообщений: 78
  • Карма: 2
Re: Вызов Lisp-функции из Arx-приложения
« Ответ #19 : 03-12-2020, 08:09:10 »
acedInvoke, если мне память не изменяет, вызывает только глобальные функции, объявленные как "c:function()". Я бы не хотел служебную функцию объявлять глобально. Будет мешаться в командой строке при вводе команд.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызов Lisp-функции из Arx-приложения
« Ответ #20 : 03-12-2020, 16:29:24 »
если мне память не изменяет, вызывает только глобальные функции, объявленные как "c:function()"
Изменяет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение