The previously reported problem with COM Interop
http://common-lisp.net/pipermail/rdnzl-devel/2006-June/000094.html
was solved by Michael by recompiling the C++ code (after porting it to a newer version of Visual Studio). If you're interested in using the C++ code with VS 2005, Michael's port is available here:
http://weitz.de/files/RDNZL-cpp-0.5-vc8.tar.bz2
Below is his description of what had to be changed.
Cheers, Edi.
On Fri, 9 Jun 2006 16:53:31 +0200, "Goffioul Michael" michael.goffioul@swing.be wrote:
I don't know if you're interested, but I ported the RDNZL C++ library to visual c++ 2005 (express edition) (aka msvc8). I did it because I needed to change the default threading attribute of the DLL to single mode, which required re-compilation, and I only had that version of the compiler. As far as I could test it, it works (I tested it with a project of mine and ECL). As of this compiler version, a lot of CLR related stuffs have changed. Most of the modifications I had to do were:
- replace *-pointer to managed object to ^-pointer
- replace C-style array of managed objects to cli::array<type^> objects
- replace the use of '0' as null pointer to managed object with
'nullptr'
- replace __gc class attribute with ref
- remove __nogc attribute (according to the doc, it's not needed
anymore)
- replace __pin attribute with pin_ptr<type> objects
- use safe_cast for managed object casting
- create String^ object explicitely from __wchar_t*
- replace "new" on managed type with "gcnew"
- slightly change how GCHandle references are used, because the compiler
counldn't find the op_explicit() member in GCHandle class
- remove the tricks that were required to avoid dead-lock when loading a
mixed assembly
- problably other small things I don't remember