I try to describe language and system extensions at all (and therefore
ADS/ARX in special compared to others) for an technical knowledgable
community (you may call it academic but it is not)
gnu, lisp, scheme, perl, python, emacs, java and friends.
Is it valid to say this for ARX?
I couldn't come to an answer just by looking at the docs.
--
ARX, the "AutoCAD runtime extension", is a C++ improvement over the
simple ADS C extension. It provides dynamic C++ extensions, some kind
of a poor mans CLOS. It lets you inherit (but not overloading) from core
C++ objects in your extensions and add methods for core objects. Because
C++ is not binary standardized (name mangling), it is only supported for
the C++ compiler in which the core was built (MSVC4.2, MSVC 6), in
contrast to the previous C based ADS which supported almost all
compilers.
--
So technically said: A dynamic binary hook into the C++ inheritance
and the RTTI mechanism.
Different to FFI's and callbacks which are dynamically created binary
function invocations.
In contrast to CLOS (it is only C++, not CL) it supports no
multi-methods, method specialization, class-redefinitions and
overloading of inherited methods, but adds persistency requirements.
Implemented as an array of function pointers ("class dictionary") to the
base "AcRxObject" class with an "class descriptor object"
(for initialization and RTTI) with desc(), cast(), isKindOf(), isA().
Is this correct?
Full text at http://xarch.tu-graz.ac.at/autocad/lisp/ffis.html
--
Reini Urban
http://xarch.tu-graz.ac.at/autocad/news/faq/autolisp.html
Sent via Deja.com http://www.deja.com/
Before you buy.