Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Mô tả R6025 thời gian chạy lỗi trong Visual C++

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:125749
TÓM TẮT
Bài viết này thảo luận về một vấn đề mà có thể xảy ra khi bạn đang phát triển một chương trình. Nếu bạn vẫn còn đang gặp một vấn đề tương tự với một trong những bài viết này mô tả, nó có thể là một vấn đề khác nhau. Để tìm kiếm các vấn đề liên quan đến một vấn đề cụ thể, hãy bao gồm tên sản phẩm trong tìm kiếm của bạn để thu hẹp kết quả của bạn. Để khắc phục vấn đề tương tự, xin vui lòng xem phần "vấn đề tương tự và nghị quyết" sau này trong bài viết này.
TRIỆU CHỨNG
Chương trình C++ không thành công và báo cáo lần chạy sau lỗi:
lỗi thời gian chạy R6025
-chức năng tinh khiết ảo cuộc gọi
NGUYÊN NHÂN
Lỗi này xảy ra khi các ứng dụng gián tiếp gọi cho một chức năng tinh khiết viên ảo trong một bối cảnh nơi một cuộc gọi đến chức năng là không hợp lệ. Trong hầu hết trường hợp, trình biên dịch phát hiện điều này và báo cáo lỗi khi xây dựng các ứng dụng. Nhưng phụ thuộc vào cách mã của bạn được viết, đôi khi vấn đề phát hiện chỉ tại thời gian chạy.

Lỗi xảy ra khi bạn gián tiếp gọi một chức năng tinh khiết ảo trong bối cảnh của một cuộc gọi đến các nhà xây dựng hoặc destructor của một lớp cơ sở trừu tượng. Điều này được minh họa trong các mẫu mã dưới đây, cùng với một số mô tả bộ.
GIẢI PHÁP
Kêu gọi một chức năng ảo tinh khiết là một lỗi lập trình, vì vậy bạn cần phải tìm các cuộc gọi đến chức năng ảo tinh khiết và viết lại mã như vậy nó không được gọi là.

Một cách để tìm một cuộc gọi đến một chức năng tinh khiết ảo là để thay thế các chức năng tinh khiết ảo với một thực hiện các cuộc gọi các Windows API chức năng DebugBreak. Khi sử dụng trình gỡ lỗi, DebugBreak sẽ gây ra một breakpoint cứng mã hoá. Khi mã dừng chạy lúc này breakpoint, bạn có thể xem callstack để xem nơi mà các chức năng được gọi là.

Một cách khác để tìm thấy một cuộc gọi đến một chức năng tinh khiết ảo là để đặt một breakpoint trên các _purecall chức năng được tìm thấy trong PureVirt.c. Phá vỡ vào chức năng này có lợi thế của giữ ngăn xếp còn nguyên vẹn để bạn có thể theo dõi những gì đang xảy ra.
TÌNH TRẠNG
Hành vi này là bởi thiết kế.
THÔNG TIN THÊM
Để biết thêm thông tin, tham khảo các "C thời gian chạy lỗi R6002 thông qua R6025 "trang trong phần "Xây dựng lỗi" trong Microsoft Developer Network (MSDN) Web site sau:Chú ý R6025 lỗi không phải trong tài liệu hướng dẫn sử dụng hoặc trợ giúp trực tuyến bao gồm với Visual C++, các phiên bản 2.x hoặc dưới đây. Tuy nhiên, nó một thời gian ngắn thảo luận trong Phần 3 của các tập tin Readme.wri được vận chuyển với Visual C++ Phiên bản 2.0.

Mã mẫu

   /* 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()   {   }				
Vấn đề tương tự và nghị quyết
Nếu bạn vẫn còn đang gặp một vấn đề tương tự với vấn đề bài viết này mô tả, nó có thể là một vấn đề khác nhau. Để biết thêm chi tiết về vấn đề tương tự và nghị quyết, nhấp vào số bài viết sau để xem các bài viết trong cơ sở kiến thức Microsoft:
240437Tiền thời gian chạy lỗi: "R6025-tinh khiết ảo hàm gọi"
308260 Làm thế nào để khắc phục sự cố kịch bản lỗi trong Internet Explorer 6 và trong Internet Explorer 7 trên máy tính dựa trên Windows 2000, dựa trên Windows XP, Windows Server 2003 dựa trên, hoặc dựa trên Windows Vista
267572 WD2000: Thông báo lỗi: "thời gian chạy lỗi '5'" khi bạn bắt đầu từ
170409 SBFM97: MS Visual C++ thời gian chạy lỗi nhập dữ liệu Quickbooks
309299 Lỗi thời gian chạy khi bạn duyệt đến một số trang Web
8,00 8,00 c 9,00

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 125749 - Xem lại Lần cuối: 09/23/2011 02:56:00 - Bản sửa đổi: 3.0

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++ 5.0 Professional Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 2.0 Professional Edition, Microsoft Visual C++ 1.5 Professional Edition

  • kbresolve kbtshoot kbcompiler kbcpponly kberrmsg kbprb kbmt KB125749 KbMtvi
Phản hồi