Saturday, January 23, 2010

RunTime Error on New Windows 7

Got this message on my new computer today, running the new Windows 7;

Description of the R6025 run-time error in Visual C++
View products that this article applies to.
This article was previously published under Q125749
On This Page
SUMMARY
SYMPTOMS
CAUSE
RESOLUTION
STATUS
MORE INFORMATION
Sample code
Similar problems and resolutions
Expand all | Collapse all
SUMMARY
This article discusses an issue that may occur when you are developing a program...
This article discusses an issue that may occur when you are developing a program. If you are still experiencing a problem that resembles the one that this article describes, it may be a different problem. To search for issues related to a specific problem, please include the product name in your search in order to narrow your results. To troubleshoot similar problems, please see the "Similar problems and resolutions" section later in this article.
Back to the top
SYMPTOMS
The C++ program fails and reports the following run-time error: runtime error R6...
The C++ program fails and reports the following run-time error:
runtime error R6025
- pure virtual function call
Back to the top
CAUSE
This error occurs when your application indirectly calls a pure virtual member f...
This error occurs when your application indirectly calls a pure virtual member function in a context where a call to the function is not valid. In most cases, the compiler detects this and reports the error when building the application. But depending on how your code is written, sometimes the problem is detected only at run-time.

The error occurs when you indirectly call a pure virtual function within the context of a call to the constructor or destructor of an abstract base class. This is illustrated in the sample code below, along with some more description.
Back to the top
RESOLUTION
Calling a pure virtual function is a programming error, so you need to find the...
Calling a pure virtual function is a programming error, so you need to find the call to the pure virtual function and rewrite the code so it is not called.

One way to find a call to a pure virtual function is to replace the pure virtual function with an implementation that calls the Windows API function DebugBreak. When using the debugger, DebugBreak will cause a hard-coded breakpoint. When the code stops running at this breakpoint, you can view the callstack to see where the function was called.

Another way to find a call to a pure virtual function is to set a breakpoint on the _purecall function that is found in PureVirt.c. Breaking on this function has the advantage of keeping the stack intact so that you can trace what is occurring.
Back to the top
STATUS
This behavior is by design.
This behavior is by design.
Back to the top
MORE INFORMATION
For more information, refer to the "C Run-Time Errors R6002 through R6025" page...
For more information, refer to the "C Run-Time Errors R6002 through R6025" page of the "Build Errors" section in the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/aa277044(VS.60).aspx (http://msdn2.microsoft.com/en-us/library/aa277044(VS.60).aspx)
Note The R6025 error is not documented in the manuals or online help included with Visual C++, versions 2.x or below. However, it is briefly discussed in Part 3 of the Readme.wri file shipped with Visual C++ version 2.0.
Back to the top
Sample code
/* Compile options needed: none
*/

class A;

void fcn( A* );

class A
{
public:
virtual void f() = 0;
A() { fcn( this ); }
};

class B : A
{
void f() { }
};

void fcn( A* p )
{
p->f();
}

// The declaration below invokes class B's constructor, which
// first calls class A's constructor, which calls fcn. Then
// fcn calls A::f, which is a pure virtual function, and
// this causes the run-time error. B has not been constructed
// at this point, so the B::f cannot be called. You would not
// want it to be called because it could depend on something
// in B that has not been initialized yet.

B b;

void main()
{
}

Back to the top
Similar problems and resolutions
If you are still experiencing a problem that resembles the problem that this art...
If you are still experiencing a problem that resembles the problem that this article describes, it may be a different problem. For more information about similar problems and resolutions, click the following article numbers to view the articles in the Microsoft Knowledge Base:
240437 (http://support.microsoft.com/kb/240437/ ) Money runtime error: "R6025 -Pure virtual function call"
308260 (http://support.microsoft.com/kb/308260/ ) How to troubleshoot script errors in Internet Explorer 6 and in Internet Explorer 7 on Windows 2000-based, Windows XP-based, Windows Server 2003-based, or Windows Vista-based computers
267572 (http://support.microsoft.com/kb/267572/ ) WD2000: Error Message: "Run-time Error '5'" when you start Word
170409 (http://support.microsoft.com/kb/170409/ ) SBFM97: MS Visual C++ run-time errors importing Quickbooks data
309299 (http://support.microsoft.com/kb/309299/ ) Runtime error when you browse to some Web pages
Back to the top

--------------------------------------------------------------------------------

APPLIES TO
Microsoft Visual C++ 2008 Express Edition
Microsoft Visual C++ 2005 Express Edition
Microsoft Visual C++ .NET 2003 Standard Edition
Microsoft Visual C++ .NET 2002 Standard Edition
Microsoft Visual C++ 6.0 Professional Edition
Microsoft Visual C++ 6.0 Enterprise Edition
Microsoft Visual C++, 32-bit Learning Edition 6.0
Microsoft Visual C++ 5.0 Professional Edition
Microsoft Visual C++ 5.0 Enterprise Edition
Microsoft Visual C++ 4.2 Professional Edition
Microsoft Visual C++ 4.1 Subscription
Microsoft Visual C++ 4.0 Standard Edition
Microsoft Visual C++ 2.1
Microsoft Visual C++ 2.0 Professional Edition
Microsoft Visual C++ 1.52 Professional Edition
Microsoft Visual C++ 1.51
Microsoft Visual C++ 1.5 Professional Edition
Microsoft Visual C++ 1.0 Professional Edition
Back to the top
Keywords: kbresolve kbtshoot kbcompiler kbcpponly kberrmsg kbprb KB125749

Back to the top





Provide feedback on this information

Did this information solve your problem?
Yes

No

I don't know



Was this information relevant?
Yes

No



What can we do to improve this information?
Make sure everyone knows this is happening with the new windows 7

To protect your privacy, do not include contact information in your feedback.


Thank you! Your feedback is used to help us improve our support content. For more assistance options, please visit the Help and Support Home Page.




http://support.microsoft.com/kb/125749

No comments: