Solved

Error R6025 - Pure virtual function call

Posted on 2003-10-30
19
1,653 Views
Last Modified: 2013-11-15
I've a VB.net (2003) multithread application that's having a weird beahvior.
The program runs fine in a few PCs (W2000 SP4 1.1 Net Framework) but in one PC with the same setup sometimes non trappable VC++ message error is displayed, the error is R6025 - Pure virtual function call.
The strange thing is that the program doesn't stop respondig until you press the OK button on the error message, in other words, the program remains fully functionally, all threads are alive, speed processing is not affected, everything works fine but if you press the error's OK button, the programs cancels.
¿Any Idea?
PS: I've doublechecked my code and I never call a virtual function of an abstract class, but I've to mention that I use some COM componentes (via COM Interop)
0
Comment
Question by:dsuarezuy
  • 11
  • 7
19 Comments
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
What COM component are you trying to use?
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
I found this article:

"R6025 - pure virtual function call" message when starting PowerPoint
http://www.rdpslides.com/pptfaq/FAQ00409.htm
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
This error usually comes from a Micro$oft library call.  It is a C++ Runtime error.
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
I know this doesn't help, but may give some insight:

C Run-Time Error R6025
pure virtual function call
No object has been instantiated to handle the pure virtual function call. This error is caused by calling a virtual function in an abstract base class through a pointer that is created by a cast to the type of the derived class, but is actually a pointer to the base class. This can occur when casting from a void* to a pointer to a class when the void* was created during the construction of the base class.
0
 

Author Comment

by:dsuarezuy
Comment Utility
The com components are:
XCeedFTP Library
XCeedCriptography Libary
I've asked XCeed an they didn't answer yet

I also use ADO.net to communicate to SQL Server 7.

As I said in the original message  I've doublechecked my code and I never call a virtual function of an abstract class.

Thanks.
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
Yes, I understand that your code doesn't call one, but that doesn't mean that it isn't called in something like an Operating System library.  Usually what I have experienced is an incorrectly registered DLL or the wrong version, but this error is never easy to find a solution to.
0
 

Author Comment

by:dsuarezuy
Comment Utility
Thanks TheLearnedOne, I didn't want to be offensive. ¿What do you suggest? The PC cannot be reinstalled, it's located at a server farm and has all the fixes from Windows Update.
The thing that is so strange is that the program can run for hours if don't press the OK button of the error message.
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
How many threads would you say you are running?  What kind of processing are you doing in each thread?  It could indicate a failure in one of the threads, that doesn't affect the system until the Error message is closed, but I don't see how yet.
0
 

Author Comment

by:dsuarezuy
Comment Utility
I create 28 threads but task manager always reports 37 threads. Each thread do a different work like polling a remote foder, connecting to an FTP server, processing database data, encrypting and decrypting data, generating compressed data, etc.
I've checked all threads since the error messeage appears and none of them stop responding, I left the message for a 2 days and nothing but some memory leaking (very small) seems to be strange.
Memory leaking could be the problem but I don't know why in other PCs it doesn't happen.
0
Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
Trying to find something unique about 1 PC can be difficult.  Should all the systems be the same?

Troubleshooting multi-threaded applications is also very difficult.  You have to find a way to isolate what the offending thread is.  Sounds complicated with so many threads.

This is not an application error, so it can't be trapped to find the misbehaving thread.
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
Here is something I saw at Micro$oft:

Money: Cannot Open File After Installing Internet Explorer 4.0
http://support.microsoft.com/?kbid=175046

It talked about the Crytography provider and not being registered properly.  I noticed that you are using the XCeedCriptography library.  Just a wild guess.
0
 

Author Comment

by:dsuarezuy
Comment Utility
TheLearnedOne, yes, you're right, isolating this behavior will be such a challange, before posting this thread I've tried lot of things trying to isolate the "corrupt" thread but as you see I had no success.
The Pc's are identical in software terms, not in hardware terms, It can be a hardware (memory) failure, but the server provider denies that cause.

I will keep testing things, wish me luck.
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
Are the threads interrelated?  Can you use one thread without others running?  Can you temporarily disable threads?
0
 

Author Comment

by:dsuarezuy
Comment Utility
Yes, I can disable each thread, I'm testing that at this very moment but the posible combinations are a lot and It will take me lot of time.
0
 

Author Comment

by:dsuarezuy
Comment Utility
Threads are not interrelated.
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 250 total points
Comment Utility
Good luck!!!!!  I tried everything that I could think of.  Might have something to do with COM interoperability, since the designers at XCeedSoft wouldn't normally test their controls on .NET.  They do have .NET components.  Does this not fit into your designs?
0
 

Author Comment

by:dsuarezuy
Comment Utility
The problema was solved reinstalling ADO 2.8.

Thanks to all.
0
 
LVL 96

Expert Comment

by:Bob Learned
Comment Utility
No comment has been added lately, so it's time to clean up this TA.
I will leave the following recommendation for this question in the Cleanup topic area:

Accept: TheLearnedOne {http:#9653736}

Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

TheLearnedOne
EE Cleanup Volunteer
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Storage devices are generally used to save the data or sometime transfer the data from one computer system to another system. However, sometimes user accidentally erased their important data from the Storage devices. Users have to know how data reco…
A Bare Metal Image backup allows for the restore of an entire system to a similar or dissimilar hardware. They are highly useful for migrations and disaster recovery. Bare Metal Image backups support Full and Incremental backups. Differential backup…
This tutorial will walk an individual through configuring a drive on a Windows Server 2008 to perform shadow copies in order to quickly recover deleted files and folders. Click on Start and then select Computer to view the available drives on the se…
This tutorial will show how to configure a single USB drive with a separate folder for each day of the week. This will allow each of the backups to be kept separate preventing the previous day’s backup from being overwritten. The USB drive must be s…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now