views:

100

answers:

2

I have an application that is written in SBCL and is deployed as an executable on Windows. The need has arisen for it to interact with Excel via COM and another application via DDE (I know, I know).

DDE is simple enough for me to have quickly wrapped what I needed in a very small, simple to maintain C library. COM, on the other hand, seems like a large enough project to just implement this portion of the functionality in Python with the Win32 extensions library.

This, to me, is annoying in that a lot of CL code is being augmented with some Python that is of varying degrees of integration with the main project.

I've seen that LispWorks and Allegro CL both allow for COM interaction but cannot find any open source implementations of the same functionality via google or CLiki.

Does such a thing exist?

+1  A: 

I'm not aware of open source COM wrappers that work on multiple CL implementations, SBCL including.

Your best bet might be checking out Corman Lisp which is Windows specific and includes a COM server. Check out its features page: http://www.cormanlisp.com/features.html

My impression is that Corman Lisp isn't actively supported any more but I could be very wrong on that, but at least you might glean something useful from its source code.

aerique
When you say "I'm not aware of open source COM wrappers that work on multiple CL implementations", are you aware of any that work on even a single non-commercial implementation?
futuranon
So they are selling CCL for $USD250.00 only not to provide any support? Sounds kinda fishy no?
grettke
grettke: FYI, “CCL” usually refers to Clozure CL (formerly OpenMCL (formerly Coral Common Lisp), which is unrelated to Corman.
Kevin Reid
futuranon: No, not until David anwered. I answered the question with Corman in mind, sorry for giving the wrong impression.
aerique
grettke: I should have worded it differently perhaps but it is definitely not fishy. Perhaps I should have said that the OP should check out Corman Lisp's forums first to check out its state.
aerique
+2  A: 

There are bindings called cl-win32ole, implemented using CFFI.

You are asking for Excel integration, so the Excel example included in cl-win32ole might be of interest to you:

David Lichteblau