Any help will help us immensely.
Thanks,
Yianni
--
Ioannis Tsamardinos http://www.cs.pitt.edu/~tsamard/
Ph.D. Student
Intelligent Systems Program http://www.isp.pitt.edu/
University of Pittsburgh http://www.pitt.edu/
You can call Lisp functions from a DLL using ACL5's foreign function
interface. This is documented in the file foreign_functions.html
which, on Windows, is usually installed in the directory
C:\Program Files\acl50\doc\cl. Read the section about
ff:defun-foreign-callable.
> Corba is certainly out of the question for cost reasons.
See ftp://ftp.parc.xerox.com/pub/ilu/ilu.html for a free CORBA
implementation that supports ACL5.
Joachim
--
joa...@kraut.bc.ca (http://www.kraut.bc.ca)
joa...@mercury.bc.ca (http://www.mercury.bc.ca)
>
>
> Hello everybody.
> We'd like to call lisp functions from C++ (or Virtual Basic). How do
> you think this is possible? Any links to related information is
> appreciated. We have Allegro 5.0. We have thought of using DLLs,
> sockets, DDE, Corba etc. Corba is certainly out of the question for cost
> reasons. What do you think is the best and easier way?
>
I assume that you are running on a Windows based PC.
We use Lisp as a DLL that is called from Visual Basic. I believe that ACL
will let you save a Lisp image as a COM component, which would probably be
easier to interface to VB than using a DLL since VB essentially uses COM
datatypes internally anyway. The project I work on uses Harlequin's LWW
which doesn't offer COM functionality so I'm only going on what I remember
when I looked at ACL a while back. VB<->Lisp DLL works perfectly OK but
there are a few VB idiosyncrasies to work around - if you decide to go this
route I can give you some more details.
Going from C (C++?) datatypes into Lisp tends to have more direct mappings
supported so a C++<->Lisp DLL interface might be more straightforward to
write.
Whether to go for an in-process, shared address space solution (DLL,
in-process COM) or an out-of-process solution (DDE, out-of-process COM,
sockets, etc) will be at least partly determined by the problem you are
trying to solve, i.e. are you looking at something that is conceptually a
single program, or is it more along the lines of a Lisp server with possibly
multiple clients?
Hope this is of some help.