Былбы рад рад небольшому примеру. вроде подключиться к активному окну. и перебрать обьекты.Что имеется в виду под подключением к активному окну? Используя эти библиотеки вы пишите dll-сборку внутри AutoCAD, а не внешний exe-файл. Во внешнем exe-файле нельзя использовать почти все из перечисленных сборок кроме interop.
Былбы рад рад небольшому примеру. вроде подключиться к активному окну. и перебрать обьекты.Посмотри на хабре (https://habrahabr.ru/users/lostpassword/topics/), у этого паренька есть 6 публикаций, мне кажется, что ты там найдешь небольшие примеры под свои нужды, затронуты почти все базовые темы.
interop как я понимаю ничем неотличается от com. И смысла подключать эти библиотеки нет.На самом деле, это не так. Некоторые вещи не реализованы или плохо реализованы в .NET, поэтому COM иногда необходим.
как я понимаю чтобы встроиться в пространство автокада мне необходимо получить dll с классом IExtensionApplicationInitialize и Terminate отвечают за то, что загружается вместе с автокадом, то есть прям в момент его загрузки.
и функциями Initialize и Terminate ? и загрузить через netload. или я чтото недопонимаю?
мне необходимо получить dll с классом IExtensionApplicationКласс не должен называться IExtensionApplication - он должен реализовывать интерфейс IExtensionApplication, что как раз и означает, что в нём должны быть методы Initialize и Terminate, они должны быть public, не иметь аргументов и ничего не возвращать.
и функциями Initialize и Terminate ?
и загрузить через netloadЛучше забудь об этом. Пользователь не станет это каждый раз набирать. Пиши сразу нормальный загрузчик под AppAutoLoader - т.е. bundle-папку. Только в таком виде плагин примут в Autodesk AppStore. Теоретически есть еще автозагрузка плагинов через запись реестре.
Теоретически есть еще автозагрузка плагинов через запись реестре.Она не "теоретическая", а самая что ни на есть практическая. BUNDLE-пакеты загружаются в акад именно потому, что по факту, обнаружив их, загрузчик регистрирует их в реестре, а так же добавляет под них кучу путей в Support Files Search Path.
BUNDLE-пакеты загружаются в акад именно потому, что по факту, обнаружив их, загрузчик регистрирует их в реестре, а так же добавляет под них кучу путей в Support Files Search Path.В реестре загрузчик их не регистрирует. Он их обрабатывает по аналогии с обработкой реестра, но реестр не трогает.
В реестре загрузчик их не регистрирует. Он их обрабатывает по аналогии с обработкой реестра, но реестр не трогает.У меня после загрузки BUNDLE регистрационная информация появляется и в реестре... Полез в исходники и увидел, что это мой же код дополнительно и выполняет регистрацию в реестре. :)
Полез в исходники и увидел, что это мой же код дополнительно и выполняет регистрацию в реестре. :)Так ты что ему двойную загрузку устраиваешь? Он дважды конечно не загрузится, но какие-то проблемы возникнуть могут.
Так ты что ему двойную загрузку устраиваешь?В коде забыл разблокировать проверку версии акада, чтобы в реестр записывалось только если акад старее чем 2012.
но какие-то проблемы возникнуть могут.Я так не думаю.
Цитата: Александр Ривилис от 30-12-2016, 15:39:07Загрузка в этом случае происходит по записи в реестре, т.е. раньше, чем было бы загружено через автозагрузчик. Как себя будет вести автозагрузчик, если обнаружит что приложение, которое он должен загрузить уже загружено?
но какие-то проблемы возникнуть могут.
Я так не думаю.