Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1683
  • Last Modified:

Error R6025 - Pure virtual function call

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
dsuarezuy
Asked:
dsuarezuy
  • 11
  • 7
1 Solution
 
Bob LearnedCommented:
What COM component are you trying to use?
0
 
Bob LearnedCommented:
I found this article:

"R6025 - pure virtual function call" message when starting PowerPoint
http://www.rdpslides.com/pptfaq/FAQ00409.htm
0
 
Bob LearnedCommented:
This error usually comes from a Micro$oft library call.  It is a C++ Runtime error.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Bob LearnedCommented:
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
 
dsuarezuyAuthor Commented:
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
 
Bob LearnedCommented:
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
 
dsuarezuyAuthor Commented:
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
 
Bob LearnedCommented:
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
 
dsuarezuyAuthor Commented:
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
 
Bob LearnedCommented:
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
 
Bob LearnedCommented:
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
 
dsuarezuyAuthor Commented:
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
 
Bob LearnedCommented:
Are the threads interrelated?  Can you use one thread without others running?  Can you temporarily disable threads?
0
 
dsuarezuyAuthor Commented:
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
 
dsuarezuyAuthor Commented:
Threads are not interrelated.
0
 
Bob LearnedCommented:
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
 
dsuarezuyAuthor Commented:
The problema was solved reinstalling ADO 2.8.

Thanks to all.
0
 
Bob LearnedCommented:
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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 11
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now