Изменить метод с атрибутами accore.dll c 64x на 32x.

Автор Тема: Изменить метод с атрибутами accore.dll c 64x на 32x.  (Прочитано 6273 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Добрый день, на болоте наткнулся на следующий код:
Код - C# [Выбрать]
  1. using System.Runtime.InteropServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.Runtime;
  4. using Autodesk.AutoCAD.Geometry;
  5. namespace DropTest
  6. {
  7.     public class Class1
  8.     {
  9.         [CommandMethod("DropTest")]
  10.         public void DropTest()
  11.         {
  12.             ObjectId viewId;
  13.             ObjectId vportId;
  14.             acedCreateEnhancedViewportOnDrop(@"D:\2\1.dwg", "1", Point2d.Origin, 1.0 / 96, ObjectId.Null, out viewId, out vportId);
  15.         }
  16.  
  17.         [DllImport("accore.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl,
  18.             EntryPoint = "?acedCreateEnhancedViewportOnDrop@@YA?AW4ErrorStatus@Acad@@PEB_W0VAcGePoint2d@@NVAcDbObjectId@@AEAV4@3@Z")]
  19.         private static extern int acedCreateEnhancedViewportOnDrop(string fileName, string viewName, Point2d position,
  20.             double scale, ObjectId labelBlock, out ObjectId viewId, out ObjectId vportId);
  21.     }
  22. }
  23.  
  24.  
В 64x работает, в 32x увы. Вопрос как сделать для 32x ну и более глобальный: где прочитать про изменение методов ObjectARX в зависимости от версий и разрядностей?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В 64x работает, в 32x увы. Вопрос как сделать для 32x ну и более глобальный: где прочитать про изменение методов ObjectARX в зависимости от версий и разрядностей?
Для AutoCAD 2019 x86
 
Код - C# [Выбрать]
  1.        [DllImport("accore.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl,
  2.             EntryPoint = "?acedCreateEnhancedViewportOnDrop@@YA?AW4ErrorStatus@Acad@@PB_W0ABVAcGePoint2d@@NVAcDbObjectId@@AAV4@3@Z")]
  3.         private static extern int acedCreateEnhancedViewportOnDrop(string fileName, string viewName, Point2d position,
  4.             double scale, ObjectId labelBlock, out ObjectId viewId, out ObjectId vportId);
Может зависеть не только от разрядности, но и от версии AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение pavka_97 21-11-2018, 13:48:41

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Off-Topic: показать
Класс. Оказывается и так можно :)