I have a post-processing program that interfaces with Abaqus. The program works fine with Abaqus 6.9 EF1. I want to update the program to work with Abaqus 6.12. I have not had any luck with getting the program to work with the updated API.
I have updated the list of libraries to link with in Visual Studio 2010. Everything builds and links properly. When I run the program, I get the following message before hitting main
:
Since the program is big (>120k lines), I decided to go back to basics. The simple program below runs fine until I call delete
. Once I call delete
, I get the same error message. If I do not link to the Abaqus libraries, the program completely runs.
#include <iostream>
int main( int argc, char* argv[] )
{
std::cout << "Hello world" << std::endl;
int *p;
p = new int(3);
std::cout << *p << std::endl;
delete p;
return 0;
}
To Clarify:
Case 1: Not linking to Abaqus libraries. Runs fine.
Case 2: Linking to Abaqus libraries. Throws Debug Assertion Failed message.
Bottom line: I do not understand how linking but not using their libraries breaks the simple program.
In my previous problems with Abaqus, I have convinced myself that they have created their own new
and delete
operators. Could their version of new
be called while the standard version of delete
is called? If so, it their a way to resolve the scope of these functions?