Функции AutoLISP из ... DLL! - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Функции AutoLISP из ... DLL!

Функции AutoLISP из ... DLL!

Ответ
Поиск в этой теме
Непрочитано 09.12.2008, 16:22
Функции AutoLISP из ... DLL!
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

Что такое *.dll файлы? - правильно, библиотеки. Библиотеки чего? - функций в первую очередь, ну и СОМ объектов тоже. Речь пойдет о функциях.
А можно ли держать в DLL-файлах функции AutoLISP-a? - МОЖНО!

Каждую функцию можно вызывать по имени и загружать в Автокад. Более того, ее можно увидеть!
Тем, кто прячет свои коды это ни к чему, а вот для других - очень даже к чему.

Сейчас я вас познакомлю с одним очень способным человеком, который реализовал эту, мою бредовую идею. И посмотрим, что из этого вышло.

Человек этот YMP модератор Серого форума. Это он сделал СОМ "DynamicWrapperX" и Parser_AutoLISP2.js большая часть заслуг его (мои только идеи и код на AutoLISP-e). Вы о нем еще услышите.

Но продолжим.

Для начала, устанавливаем DynamicWrapperX
http://forum.script-coding.info/viewtopic.php?id=2214

Код:
[Выделить все]
;создаем объект DynamicWrapperX
(setq DX (vlax-get-or-create-object "DynamicWrapperX"))

;Берем pltools1.dll и кладем куда угодно. Регистрировать не надо.

;Импортируем из нашей DLL-ки под названием pltools1.dll две единственные ее функции имена которых составные из 
;имени DLL и наименования функции GetList_pltools1 и GetFunc_pltools1. Эти функции создаются автоматически при 
;компилировании DLL.
(vlax-invoke-method DX "Register" "C:\\Строительство\\Макросы\\Winapi\\pltools1.dll" "GetList_pltools1" "r=s")
(vlax-invoke-method DX "Register" "C:\\Строительство\\Макросы\\Winapi\\pltools1.dll" "GetFunc_pltools1" "i=s" "r=s")
;Путь к DLL указываете свой.

;GetList_pltools1l - показывает список имен всех функций, заключенных в DLL. Аргументов не имеет
;GetFunc_pltools1 - вызывает из test1.dll нужную функцию. Аргумент - имя функции.
;Смотрим содержимое pltools1.dll
Код:
[Выделить все]
(setq Str1 (vlax-invoke-method DX "GetList_pltools1"))
(alert Str1)




Добываем, скажем известную многим функцию, производства а-ля VVA pl:conv-ent-to-ename

Код:
[Выделить все]
(setq Str1 (vlax-invoke-method DX "GetFunc_pltools1" "pl:conv-ent-to-ename"))
Читаем, что там в нутри

Код:


Запускаем функцию, полученную из DLL

Код:
[Выделить все]
(vla-SendCommand 
    (vla-get-ActiveDocument (vlax-get-acad-object)) 
Str1)
Все остальные функции точно так же вызываются и запускаются.

Есть некоторые правила, о которых я вам расскажу в следующем моем сообщении.

Миниатюры
Нажмите на изображение для увеличения
Название: Список функций.JPG
Просмотров: 1271
Размер:	11.4 Кб
ID:	13287  Нажмите на изображение для увеличения
Название: Функция pl-conv-ent-to-ename.JPG
Просмотров: 1285
Размер:	58.3 Кб
ID:	13289  

Вложения
Тип файла: rar pltools1.rar (3.0 Кб, 135 просмотров)


Последний раз редактировалось Supermax, 12.12.2008 в 10:31.
Просмотров: 8944
 
Непрочитано 26.06.2010, 19:47
#21
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 205


Конечно же это не альтернативы, а клоны. Скорее альтернатива AutoCAD это Микростэйшн. Многие русские люди работают на клонах и не плюются, т.к. знают, что собака лает, караван идет. Приходится конечно укрощать строптивые клоны, скажем спасибо ввпэну, за то что лишил нас бесплатного автокада. На мой взгляд Автодеск накручивает свой кульман совершенно ненужными наворотами, можно смело утверждать что для разработки КЖ вполне достаточно AutoCAD 2000 , а последующие релизы АКАДа - просто делание денег на недалеких потребителях.

Последний раз редактировалось nikе, 26.06.2010 в 20:02.
nikе вне форума  
 
Непрочитано 27.06.2010, 14:18
#22
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


извращенцы
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Функции AutoLISP из ... DLL!



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать функции (getkword) Список ключевых слов из списка? Kostinok Программирование 31 31.05.2012 13:08
Предложение: Готовые функции Apelsinov Библиотека функций 170 27.06.2010 23:51
Вызов функций Windows API из AutoLISP Supermax LISP 47 18.12.2008 12:13
Функции в AutoLISP Briz06 LISP 4 14.10.2006 13:25