MtmdLoadDLL

Русский текст ниже

This ARX-module is developed to enable of user DLLs' function calls from within LISP programs.

Main features of MtmdLoadDll:
- Passing arbitrary number of arguments to function
- Passing pointer to AutoCAD IDispatch interface as argument to function
- Passing parameters by reference(!)


Functions in MtmdLoadDll.arx:


(MtmdDllLoad "DLL_name")


Loads "DLLname" into acad.exe process
Parameters:
DLL
name - name of DLL to load, (with/without) full path
Return value: handle of loaded DLL


(MtmdDllUnload "DLL_name")


Unloads "DLLname" from acad.exe process
Arguments:
DLL
name - name of DLL to unload, (with/without) full path
Return value: T - success/NIL - error


(MtmdDllExecute "DLLname" "functionname" [ ]*)


Available argument types:
(examples of pairs "arg_type" arg)

"IACADAPP" NIL - Pointer to IDispatch interface of AutoCAD application (Addref=false)
"IACADAPP" T - Pointer to IDispatch interface of AutoCAD application (Addref=true)
"INT" 23 - Long integer
"DOUBLE" 23.0 - Double
"STRING" "text" - String (PChar)
"VARINT" "intvar1" - ByRef long integer (variable "intvar1" must be defined with integer value)
"VARDOUBLE" "doublevar1" - ByRef double (variable "doublevar1" must be defined with double value)

"VARSTRING" "strvar1" - String (variable "strvar1" must be defined with string value)
Important! Variable "strvar1" must have length large enough to hold output string

Return value: value returned by called function
"Byref" values will be returned into specified variables

Notes:
- calling convention of DLL function will be determined automatically


ARX модуль MtmdLoadDLL предназначен для вызова функций пользовательской DLL из LISP-программ.
Возможности:

  • Вызов функций из любой DLL с произвольным количеством параметров
  • Возможность передачи в функцию указателя на интерфейс
    IDispatch приложения AutoCAD
  • Автоматическое определение типа соглашения о вызовах (STDCALL/CDECL)

Формат вызова:
(MtmdDllLoad "ИмяDLL")
(MtmdDllExecute "ИмяDLL" "имя_функции" [<тип> <аргумент>]*)
(MtmdDllUnload "ИмяDLL")

Возможные типы аргументов:
(примеры пар "тип" аргумент)

"IACADAPP" NIL - Указатель на IDispatch приложения AutoCAD (Addref=false)
"IACADAPP" T - Указатель на IDispatch приложения AutoCAD (Addref=true)
"INT" 23 - значение типа long
"DOUBLE" 23.0 - Значение типа double
"STRING" "text" - Строка (PChar)
"VARINT" "intvar1" - long по ссылке (intvar1 должна быть целочисленной переменной)
"VARDOUBLE" "doublevar1" - double по ссылке (doublevar1 должна быть переменной типа double)

"VARSTRING" "strvar1" - Строка (strvar1 должна быть строковой переменной)
Важно! Переменная strvar1 должна быть достаточной длины для помещения выходного значения

Возвращаемое значение равно значению, возвращаемому функцией "имя_функции"
Значения "по ссылке" будут возвращены в указанных переменных