|| | |||Browse by category|
I get general protection faults when operator delete is being called in my application or when my program crashes.
MSVC4x ships with two versions of the runtime libraries - debug and non-debug. For example, MSVCRT40.DLL is used when you build your application in release mode and corresponds to the MSVCRT.LIB import library. MSVCRT40D.DLL is used when you build in debug mode and corresponds to the MSVCRTD.LIB import library.
The Rogue Wave makefiles will link to the debug libraries when you use BMODE=DEBUG and MSDEBUG=1 on the make command line to build the library. Thus, it will always use the debug runtime libraries. If you are building a release application, everything else will try to use the release versions of the runtime libraries. Trying to use both of these libraries at once can cause GPFs. The fix for this is to always match the runtime libraries with the Tools.h++ library (such as debug vs. non-debug, multi-thread vs. single-thread, etc.).
In Microsoft's IDE, go to the menu Build|Settings and click on the C++ tab. Then choose Category: Code Generation and under Use run-time library:, choose the appropriate library for the build mode and version of Tools.h++ you are using.