Autocad2013 и позднее связывание

Автор Тема: Autocad2013 и позднее связывание  (Прочитано 2785 раз)

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

Оффлайн x3mАвтор темы

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Доброго времени суток!

Раньше использовал нижеследующий код, для маркировки нужных мне областей:
   
Код - vb.net [Выбрать]
  1. <System.Runtime.InteropServices.DllImport("acad.exe", CallingConvention:=System.Runtime.InteropServices.CallingConvention.Cdecl)> _
  2. Private Shared Sub acedGrDraw(ByVal pt1() As Double, ByVal pt2() As Double, ByVal color As Integer, ByVal highlight As Integer)
  3. End Sub


Щас при портировании кода в Autocad 2013 выходит исключение:
System.EntryPointNotFoundException: Не удается найти точку входа "acedGrDraw" в DLL "acad.exe".
 в MyDll.GeometryComand.acedGrDraw(Double[] pt1, Double[] pt2, Int32 color, Int32 highlight)
 в MyDll.GeometryComand.marker(Point2d point1)
Подскажите пожалуйста как сделать данную функцию рабочей?

Благодарю заранее!
« Последнее редактирование: 15-11-2016, 12:15:40 от Александр Ривилис »


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

  • Administrator
  • *****
  • Сообщений: 13193
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Autocad2013 и позднее связывание
« Ответ #2 : 12-01-2014, 17:47:40 »
С 2013 версии используется "accore.dll" вместо "acad.exe".
К этому могу добавить, что вместо вызова через P/Invoke (а не через позднее связывание, как написал x3m) можно использовать методы Editor.DrawVector и Editor.DrawVectors. Первый из этих методов полностью аналогичен вызову acedGrDraw через P/Invoke.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн x3mАвтор темы

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Re: Autocad2013 и позднее связывание
« Ответ #3 : 12-01-2014, 19:07:14 »
Все получилось, спасибо!