Makale numarası: 196342 - Son Gözden Geçirme: 18 Haziran 2001 Pazartesi - Gözden geçirme: 1.0

SORUN: Visual C++ 6.0 MFC ActiveDesktop derleme hataları

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ı.
Hepsini aç | Hepsini kapa

Belirtiler

Visual C++ 6.0 Microsoft Foundation Classes (MFC altında), IActiveDesktop arabirimi ile ilgili kodu derlemek için LPACTIVEDESKTOP "bildirilmemiş tanımlayıcı" da dahil olmak üzere, birden fazla hata ile başarısız olur.

Bu özellikle, Visual C++ 6.0 kullanarak bir MFC program derleme oluşuyor olduğunu unutmayın. MFC önceki sürümlerinde veya C veya C++ programları derlenmekte genel Visual C++ 6.0 durumda oluşma sorun hiçbir rapor yok.

Neden

Bir MFC uygulaması Stdafx.h üstbilgi dosyası içeriyorsa, dosya *\Vc98\Mfc\Include\Afxdisp.h varsayılan olarak eklenir. Içinde Afxdisp.h Shlobj.h (ActiveDesktop için gerekli) dosyası bulunur. Ancak bazı bölümlerini Shlobj.h düzgün başlatılır, böylece bu noktada Wininet.h içerilir edilmemiştir ActiveDesktop desteği.

Shlobj.h Afxdisp.h olarak eklenmesi, Shlobj.h iki kez eklenmesini engelleyen, bir değişken de ayarlar. Bir MFC uygulaması Wininet.h Shlobj.h tarafından önceden ayarlanmış ve ardından açık ve düzgün içerdiğinde sonraki değişken ikinci Shlobj.h eklenmesi önler ve ayrıca kritik ActiveDesktop tanımları gibi LPACTIVEDESKTOP için yapılan gelen engeller.

Çözüm

Bir # include eklemek için Wininet.h başlık Stdafx.h önceden derlenmiş bir üstbilgi dosyasına yalnızca Afxdisp.h içerir. Işte bir örnek Stdafx.h:
// stdafx.h : include file for standard system include files,

...

#include <wininet.h>
#include <afxdisp.h>        // MFC Automation classes

...

#endif //!defined(AFX_STDAFX_H__D5E466A9...
				
Stdafx.h Düzeltme sonrasında, önceden derlenmiş üstbilgi re-compiled olduğundan emin olmak için tüm proje yeniden oluşturun.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Anahtar Kelimeler: 
kbmt kbactivedesktop kbprb KB196342 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:196342  (http://support.microsoft.com/kb/196342/en-us/ )