Düzeltme: Appui1.cpp satırı 215 MFC SDı/MDı uygulamada belirt

Makale çevirileri Makale çevirileri
Makale numarası: 193102 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Burada, çerçeve penceresi kalıcı pencere görüntülenmeden önce komut işleyicisinde edilir, MFC SDı/MDı uygulamanın bir komutu işleyicisindeki açıkça üst belirtmeden kalıcı bir pencere görüntülemek çalıştığınızda, bir onaylama işlemi içinde CCmdTarget::GetRoutingFrame_() alabilirsiniz (Appui1.cpp satır: 215) ile hata ayıklama oluşturur.

Uygulamasının <a1>Sürüm</a1> yapılarında kalıcı windows modsuz benzer pencereleri davranabilir. Visual C++ 5.0 MFC uygulamadan Visual C++ 6.0 (her iki sürümü Visual C++ MFC DLL kullanımı MFC42.dll adlı) için güncelleştirme, bu durumda olacaktır.

Neden

Kalıcı bir windows şimdi yönlendirme çerçevenin veri üyesini (m_pRoutingFrame) iş parçacığı durumu GetSafeOwner(), sahibine göre karar vermek için kullanın. CFrameWnd iş parçacığı durumun geçerli yönlendirme çerçeve silinir, ancak iş parçacığı durumu bu gerçeği yansıtacak biçimde güncelleştirildi ayarlamak sorunu var.

Çözüm

Iş parçacığı durumun geçerli yönlendirme çerçeve NULL olarak yok edilir türetilmiş CFrameWnd sınıfınızın yıkıcı ilgili olarak ayarlayın:

CMyFrameWnd::~CMyFrameWnd()
   {

      if( AfxGetThreadState()->m_pRoutingFrame == this )
      {
         AfxGetThreadState()->m_pRoutingFrame = NULL;
      }
   }
				

Durum

Microsoft bu hatanın bu makalenin başında listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır. Bu hata, Visual Studio 6.0 Service Pack 1'de giderilmiştir.

Bu hizmet paketini edinmek için <a0></a0>, lütfen bkz:
http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx

Daha fazla bilgi

Bu sorundan etkilenen MFC çerçeve windows CFrameWnd, CMDIFrameWnd CMDIChildWnd ve COleIPFrameWnd türünde olabilir.

Etkilenen MFC kalıcı windows şunlardır:
  • Iletişim
  • CPropertySheet
  • OLE özellik sayfası [[ASCII 150] üzerinden çağrılan OleObject::DoVerb(OLEIVERB_PROPERTIES)]
  • COleBusyDialog
  • Ileti kutusu [AfxMessageBox() çağrılan]
  • [MAPISendMail() çağrılırken] MAPI kalıcı pencere
  • [SQLDriverConnect() çağrılırken] SQL sürücü bağlantısı iletişim kutusu

Davranışı yeniden oluşturma adımları

  1. AppWizard MDI tabanlı bir uygulama bir MFC exe oluşturmak için kullanın.
  2. ClassWizard OnCloseDocument AppWizard tarafından oluşturulan CDocument sınıfı geçersiz kılmak için kullanın.
  3. A?a??da gösterildi?i gibi OnCloseDocument üye işlev düzenleyin:
          void CMyDoc::OnCloseDocument()
          {
             CDocument::OnCloseDocument();
             AfxMessageBox("The Document is Closed");
          }
    					
  4. Oluşturup uygulamayı çalıştırın.
  5. Dosya menüsünden Kapat'ı tıklatın.
SONUÇLARı: Aşağıdaki hata ortaya çıkıyor:
"Hata ayıklama onaylama işlemi başarısız! Dosya: Appui1.cpp satırı: 215 ".
Yukarıda belirtilen durumda bu sorunu gidermek için <a0></a0>, CChildFrame için yıkıcı aşağıdaki kodu ekleyin:

CChildFrame::~CChildFrame()
   {

      if( AfxGetThreadState()->m_pRoutingFrame == this )
      {
         AfxGetThreadState()->m_pRoutingFrame = NULL;
      }
   }
				


(c) Microsoft Corporation 1998, tüm hakları saklıdır. Katkıyı Bret Bentzinger, Microsoft tarafından

Referanslar

Visual Studio hizmet paketleri hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
194022Visual Studio 6.0 hizmet paketleri, ne, nerede, neden (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
194295Visual Studio hizmet paketinin yüklü olmadığını belirleme
193009BILGI: Visual Studio 6.0 Service Pack 1 Benioku

Özellikler

Makale numarası: 193102 - Last Review: 22 Şubat 2014 Cumartesi - Gözden geçirme: 4.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Foundation Class Library 4.2, Ne zaman ne ile kullanilir:
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbqfe kbbug kbdocview kbfix kbvc600sp1fix kbvs600sp1fix kbvs600sp2fix KB193102 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:193102

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com