in reply to XS & exception handling

In gcc you can compile with the -fexceptions flag, which permits the C code to pass C++ exceptions along. That ability is not portable.

Your best bet is to produce a C/C++ interface to the C++ library. Use extern "C" linkage qualifier, and the throw() exception specifier. Catch all exceptions and handle them by setting errno appropriately and returning an error flagging result like PL_sv_undef.

I haven't tested the C++ compliance of MSVC6, but there is some chance that exception handling will be adequate.

After Compline,
Zaxo