Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: x3m от 12-01-2014, 12:08:24

Название: Autocad2013 и позднее связывание
Отправлено: x3m от 12-01-2014, 12:08:24
Доброго времени суток!

Раньше использовал нижеследующий код, для маркировки нужных мне областей:
   
Код - 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)
Подскажите пожалуйста как сделать данную функцию рабочей?

Благодарю заранее!
Название: Re: Autocad2013 и позднее связывание
Отправлено: Дмитрий Загорулькин от 12-01-2014, 13:41:24
С 2013 версии используется "accore.dll" вместо "acad.exe".
Название: Re: Autocad2013 и позднее связывание
Отправлено: Александр Ривилис от 12-01-2014, 17:47:40
С 2013 версии используется "accore.dll" вместо "acad.exe".
К этому могу добавить, что вместо вызова через P/Invoke (а не через позднее связывание, как написал x3m) можно использовать методы Editor.DrawVector и Editor.DrawVectors. Первый из этих методов полностью аналогичен вызову acedGrDraw через P/Invoke.
Название: Re: Autocad2013 и позднее связывание
Отправлено: x3m от 12-01-2014, 19:07:14
Все получилось, спасибо!