[rdnzl-devel] Re: RDNZL-cpp for Visual C++ 2005

Edi Weitz edi at agharta.de
Mon Jun 12 09:52:23 UTC 2006


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 at 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



More information about the rdnzl-devel mailing list