Solved

Error R6025 - Pure virtual function call

Posted on 2003-10-30
19
1,672 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 11
  • 7
19 Comments
 
LVL 96

Expert Comment

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

Expert Comment

by:Bob Learned
ID: 9653152
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
ID: 9653167
This error usually comes from a Micro$oft library call.  It is a C++ Runtime error.
0
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 
LVL 96

Expert Comment

by:Bob Learned
ID: 9653176
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
ID: 9653274
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
ID: 9653295
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
ID: 9653368
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
ID: 9653410
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
ID: 9653481
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
 
LVL 96

Expert Comment

by:Bob Learned
ID: 9653508
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
ID: 9653545
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
ID: 9653554
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
ID: 9653569
Are the threads interrelated?  Can you use one thread without others running?  Can you temporarily disable threads?
0
 

Author Comment

by:dsuarezuy
ID: 9653604
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
ID: 9653607
Threads are not interrelated.
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 250 total points
ID: 9653736
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
ID: 9716345
The problema was solved reinstalling ADO 2.8.

Thanks to all.
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 10232268
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

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is an update and follow-up of my previous article:   Storage 101: common concepts in the IT enterprise storage This time, I expand on more frequently used storage concepts.
Microservice architecture adoption brings many advantages, but can add intricacy. Selecting the right orchestration tool is most important for business specific needs.
To efficiently enable the rotation of USB drives for backups, storage pools need to be created. This way no matter which USB drive is installed, the backups will successfully write without any administrative intervention. Multiple USB devices need t…
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…

623 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