Makale numarası: 177575 - Son Gözden Geçirme: 17 Şubat 2005 Perşembe - Gözden geçirme: 1.2

SORUN: ActiveX denetimleri gönderme Variant * VFP neden hata için geri

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 FoxPro, varsa bir out parametresi türü bir türevi yöntemiyle Microsoft Foundation Classes (MFC) ile oluşturulmuş bir ActiveX denetiminin bir yöntemi çağırmak, bir tür uyumsuzluğu hatası döndürür.

Neden

ActiveX denetiminde bir yöntemini çağırmak ve parametre değeri ActiveX denetiminden geri almak için başvuru olarak bir değişken yönteme BSTR veri türü kullanmak için Microsoft Visual FoxPro gibi görünüyor. ActiveX yöntemin bir parametresi bir Variant, MFC ActiveX denetimi dayalı olarak tanımlıysa, bu deneyin ve VariantChangeType işlevini kullanarak aynı veri türlerini işlenemiyor MFC neden olur. Bu işlev, tür uyumsuzluğu hatası döndürür.

Çözüm

ActiveX Template Library (ATL) ile oluşturulan denetimleri sorun yok. Microsoft Foundation Classes (MFC) denetim oluşturuyorsanız, parametresi veri türleri varyantın kullanmayın.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

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

Sunucu oluşturma

  1. Denetim Sihirbazı'nı kullanarak bir MFC ActiveX denetimi oluşturun.
  2. Denetim için bir yöntem ekleyin:
          void CMyCtrl::MyMethod(VARIANT FAR* m_pVariant)
          {
          }
    					
  3. Oluşturma ve Denetim kaydedin.

Istemci oluşturma

  1. Yeni bir form oluşturun.
  2. Bir <a0>OLE</a0> kapsayıcı nesnesi ekleyin.
  3. Iletişim kutusu görüntülendiğinde, "Denetim Ekle" seçeneğini seçin.
  4. MFC ile yalnızca yerleşik denetimi seçin.
  5. Formda komut düğmesi oluşturun ve aşağıdaki kodu, Click olayına yerleştirin:
    ****Begin Example Code************
          xy=space(0)
          THISFORM.OleControl1.mymethod(@xy)
          *****End Example Code**************
    					
    düğme tıklatıldığında, bu tür uyumsuzluğu hatası oluşuyor.

Referanslar

Ek bilgi için lütfen aşağıdaki Microsoft Knowledge Base'deki makaleleri bakın:

146219  (http://support.microsoft.com/kb/146219/EN-US/ ) Nasıl yapılır: bir ActiveX denetimini (.ocx) el ile kaydetme
139154  (http://support.microsoft.com/kb/139154/EN-US/ ) Visual FoxPro lisans OLE denetimi

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbprb KB177575 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:177575  (http://support.microsoft.com/kb/177575/en-us/ )