Makale numarası: 122488 - Son Gözden Geçirme: 08 Aralık 2003 Pazartesi - Gözden geçirme: 3.0

SORUN: Nasıl Otomasyon hata kodu ve Yardım'dan Visual Basic kullanın.

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Visual Basic sürüm 3.0, OLE Otomasyonu özel durumlar değil rapor Otomasyon hatalarının yapar. Bunun yerine, bir <a1>ııswebdirectory</a1> 440 err değeri ve bir açıklama dizesi "OLE Otomasyonu özel" bildiriyor Otomasyon sunucusu tarafından geçirilen bir fiili wCode kaybolur.

Durum

Bu davranış, Visual Basic sürüm 3.0, tasarım gereğidir. Visual Basic for Applications, Excel sürüm 5.0, Visual Basic 4.x ve sonraki sürümleri ve diğer Microsoft ürünlerinin içerdiği wCode, doğru verir.

Daha fazla bilgi

Bir MFC Otomasyon sunucusu tarafından arama AfxThrowOleDispatchException OLE gönderme özel durum oluşturduğunda, COleDispatchException sınıfın bir nesnesi oluşturulur. Üye değişkenlerini, bir OLE SCODE, Yardım içeriği, dize hata açıklaması ve wCode (Visual Basic tarafından kullanılan bir tamsayı kod) içerir.

Visual Basic Otomasyon denetleyicisi korur tek bilgi dizesi açıklamasıdır. Ancak, MFC OLE Otomasyon sunucusu AfxThrowOleDispatchException() çağrısı kullanılan bilgileri korumak ve bu bilgileri kullanıcıya yardımcı olmak üzere kullandığı bir ek "Yardım" yöntemi kullanır. Visual Basic hata işleme kodunu, içinde Err 440 ise Error(Err) "OLE gönderme Exception" ise ve hatası $, sunucu tarafından aktarılan gerçek dizedir.

Örnek kod parçacıklarını

/* Compile options needed:
   standard MFC OLE project generated by AppWizard*/ 
				
  1. Gönderme özel durum oluşturduğunda, Otomasyon sunucusu yönteminde wCode ve Yardım içeriği bu işlevi gibi <a1>Otomasyon</a1> nesnesinin üye değişkeni olarak korumak:
       void CMyObject::Exception()
       {
          m_nIDContext = <some context>;
          m_nSomeCode = <some code>;
          AfxThrowOleDispatchException(m_nSomeCode,"String",m_nIDContext);
       }
    						
  2. Otomasyon sunucusu gibi bu kod bir özel durum gelen gerçek içerikli WinHelp veya başka bir Yardım alt yapısı'nı başlatmak için üye değişkenleri kullanan bir yöntem bulaşmasına neden:
       short CMyObject::GetError()
       {
          // From here you can use the member variable code
          // and context to start WinHelp or do whatever
          // help code you need to do ...
          AfxGetApp()->WinHelp(m_nIDContext);
          return m_nSomeCode;
       }
    						
  3. Gönderildiği bir durum oluştuğunda, yordamına Visual Basic hata Otomasyon sunucusunu sunulma hata yöntemini çağırmalısınız. Visual Basic kod örneği şöyledir:
       Sub Command1_Click ()
          On Error GoTo EHandle
          Dim a As object
          Set a = CreateObject("TestAuto")
          ' Next line causes exception:
          a.exception
       EHandle:
          Msg = "The error message for error number "
          Msg = Msg & Err & " is:" & NL & NL
          Msg = Msg & """" & Error(Err) & """"
          MsgBox Msg  ' Display message.
          ' Next line starts WinHelp engine by calling method in server.
          a.GetError
          Exit Sub
       End Sub

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Foundation Class Library 4.2, Ne zaman ne ile kullanilir:
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbautomation kbinterop kbprb kbtshoot KB122488 KbMttr
Otomatik TercümeOtomatik Tercüme
Ö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:122488  (http://support.microsoft.com/kb/122488/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.