Solved

Error R6025 - Pure virtual function call

Posted on 2003-10-30
19
1,660 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
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
NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

 
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

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Send SMS from VB via Sierra Wireless Modem 2 23
Add a Condition in ASP Repeater 6 34
VMware vSAN 6.5 usage example and caveats 11 82
how to just get time from a date 6 33
Workplace bullying has increased with the use of email and social media. Retain evidence of this with email archiving to protect your employees.
Microsoft will be releasing the Windows 10 Creators Update in just a matter of weeks. Are you prepared? Follow these steps to ensure everything goes smoothly and you don't lose valuable data on your PC.
This tutorial will walk an individual through locating and launching the BEUtility application to properly change the service account username and\or password in situation where it may be necessary or where the password has been inadvertently change…
This tutorial will walk an individual through setting the global and backup job media overwrite and protection periods in Backup Exec 2012. Log onto the Backup Exec Central Administration Server. Examine the services. If all or most of them are stop…

828 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