Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2017, 16:23   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию DLL для AutoCAD

Здравствуйте.
Чую, на этот вопрос мне никто не ответит, но всё же...
Как сделать DLL, чтобы функция из него воспринималась АвтоКАДом?
Если попытаться загрузить просто обычную DLL через команду "netload", то Автокад выдаёт такой набор строк:
Цитата:
Не удалось загрузить сборку. Сведения об ошибке: System.BadImageFormatException: Не удалось загрузить файл или сборку "file:///D:\......\Project1.dll" либо одну из их зависимостей. Ожидалось, что модуль содержит манифест сборки.
Имя файла: 'file:///D:\.......\Project1.dll'
в System.Reflection.RuntimeAssembly._ nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
в System.Reflection.RuntimeAssembly.I nternalLoadAssemblyName(AssemblyNam e assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
в System.Reflection.RuntimeAssembly.I nternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
в System.Reflection.Assembly.LoadFrom (String assemblyFile)
в Autodesk.AutoCAD.Runtime.ExtensionL oader.Load(String fileName)
в loadmgd()
Ship_1 вне форума Ответить с цитированием
Старый 11.04.2017, 16:26   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Если в автокаде есть возможность загружать свои функции, то есть и правила объявления этих функций, самое просто взять уже работающую длл автокада, и изменить её на свою, тогда добавление пройдет без проблем.
Alar вне форума Ответить с цитированием
Старый 11.04.2017, 16:29   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Точно не через это, судя по именам оно ожидает .NET, а не нативную DLL.

Если автокад не умеет не .NET, то тогда скорее всего проще всего взять C#.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.04.2017, 16:34   #4
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Ну в плане создания DLL для АвтоКАДа, конечно, проще, но не проще мне, т.к. Delphi я понимаю, а C# совсем не знаю вообще... Delphi же, вроде, тоже что-то с .NET может делать? Куда посмотреть, чтоб понять как обычное ShowMessage('Hello World!') перевести на .NET?
Ship_1 вне форума Ответить с цитированием
Старый 11.04.2017, 16:36   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

С# похож на Delphi, тут может быть проблема только в том что нет желания скачивать и устанавливать )

Цитата:
Куда посмотреть, чтоб понять как обычное ShowMessage('Hello World!') перевести на .NET?
Найти готовый скрипт, длл или что там, родной автокадоский, и посмотреть как он делает это.
Alar вне форума Ответить с цитированием
Старый 11.04.2017, 16:39   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

У аутодеска вменяемая документация, СДК и даже курсы/видео есть. http://usa.autodesk.com/adsk/servlet...112&id=1911627

Если, конечно, гугл и офф сайт не игнорировать...
p51x вне форума Ответить с цитированием
Старый 11.04.2017, 16:44   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А для чего DLL? Что вы сделать хотите?
Цитата:
Сообщение от Ship_1 Посмотреть сообщение
как обычное ShowMessage('Hello World!') перевести на .NET?
Код:
MessageBox.Show("Hello world");
(если обычное WinForms или WPF приложение, а не что-то отдельное автокадовское)

Цитата:
Сообщение от Ship_1 Посмотреть сообщение
Delphi же, вроде, тоже что-то с .NET может делать?
В отдельных Delphi .NET/Delphi Prism.
Но скорее всего проще C# потому что ими никто не пользуется )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.04.2017, 16:54   #8
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Alar Желание-то есть, времени пока нет. Оно появится быстрее, если Вы подскажете удобную портабл-среду для разработки на C# А установить здесь и не получится: админы не разрешают.
p51x Я знаю, что у них нормальная документация. Уже немало поработал с АвтоКАДом извне, но это для небольших задач неудобно, вот и решил попробовать внутрь запихнуть.
Alex11223 Ну вообще я хочу запихнуть "внутрь" автокада программку (уже сделанную мной на Дельфи), копирующую текст из выделенных ячеек таблицы в АвтоКАДе в буфер обмена, из которого его потом обычным Ctrl+V можно вставить в Excel. АвтоКАД, почему-то, сделал так, что скопированные через ctrl+c ячейки не видно никому кроме самого автокада... Моя программка "проходит" по выделенным ячейкам и создаёт строку, вид которой воспринимается Экселем для вставки по строкам и колонкам.
Ship_1 вне форума Ответить с цитированием
Старый 11.04.2017, 17:00   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

SharpDevelop наверно портабл.

А разве можно запихнуть какое попало приложение туда?) Наверно ж надо использовать их SDK/API.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.04.2017, 17:17   #10
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

А разве не только для взаимодействия (в плане управления) с программой, от которой API, нужно API? Я не знаю, я пока ничего никуда не запихивал ) Это первый эксперимент. Неудачный пока... MessageBox - это вообще из какого юнита? WinAPI? Давно не пользовался им. Что-то мой портабл D7 не находит WinAPI.dcu... Жаль. Но я сделал ещё проще. Создал "пустую" DLL и попытался загрузить. Опять выругался. Значит, не в этом дело...
Ship_1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция для сборки приложений на Qt в один exe без зависимостей от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll и т.д. 8Observer8 Qt и кроссплатформенное программирование С/С++ 12 25.06.2015 03:18
Нужен программист AutoLisp для написания одного несложного приложения под AutoCad за вознаграждение. Kam.ruslan Фриланс 0 02.07.2012 14:59
AutoCAD: подбор формата для обычного пользователя Blondy Общие вопросы по программированию, компьютерный форум 5 28.08.2011 10:49
Приложение для AutoCAD Natali_L. Фриланс 1 09.01.2009 19:25
Исполнение скрипта для AutoCad Stilet Помощь студентам 2 07.07.2008 08:17