Firstly, the only bit's that seem to be missing from Code Warrior's C++ are new and delete. There's also a couple of easy to fix problems with libps.h - we'll deal with those first.
Find the start of the function prototypes (it'll be around line 360). Before the first prototype insert the line:
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
Now go to the end of the file and add the chunk below (just before the #endif):
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
Find the definition of delete() - it reffers to a filesystem function anyway. Replace it with the chunk below:
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern int deletefile(char *);
#else
extern int delete(char *);
#endif
What this gives you is a new() macro that allocates the space for an object
and a delete() macro that will invoke the destructor before freeing the object.
Simple, but effective. This will get rid of the linker error that you normally
get when compiling C++ code that tries to do dynamic object creation.
The only thing to remember is that you MUST include "cg_cpp.h" in every
source file to ensure the macro's are included.