FIX: Un overflow dello stack si verifica quando contenitori di controlli ActiveX MFC immettere uno stato di una ricorsione infinita in Visual c ++

Traduzione articoli Traduzione articoli
Identificativo articolo: 192942 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato archiviato. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.
Espandi tutto | Chiudi tutto

Sintomi

In determinate circostanze, contenitori di controlli ActiveX MFC verranno immesso uno stato di una ricorsione infinita, che porterà a un overflow dello stack. I sintomi di questo quando si modifica la posizione di un sito di controllo, il programma verrà apparentemente si blocca e alla fine di produrre un overflow dello stack (0xC00000FD) eccezione del sistema operativo. L'analisi dello stack è simile al seguente:
   COleControlSite::MoveWindow
   COleControl::XOleInPlaceObject::SetObjectRects
   COleControl::OnSetObjectRects
   COleControlSite::MoveWindow
   ...
				

Cause

Quando cambia la posizione del sito del controllo, il codice del contenitore modifica la posizione della finestra riflettore (se presente) e i rettangoli tracker (se presente). Il codice di contenitore di controllo chiama infine COleControl::XOleInPlaceObject::SetObjectRects. (Vedere CTLINPLC.CPP nell'origine MFC). SetObjectRects() effettua una chiamata a GetOuterWindow(), che restituisce la finestra riflettore, se presente. Se la variabile di finestra riflettore NULL lo stesso oggetto finestra è restituito, MoveWindow viene quindi chiamato utilizzando l'oggetto di finestra restituito. In questo modo MoveWindow a essere chiamato su se stesso, in un ciclo ricorsivo.

Risoluzione

Una soluzione consiste nel copiare la versione di Visual c ++ 5.0 di Mfc42.dll (versione file: 4.21.7303) della home directory del programma in cui si verifica questo problema. Questa operazione comporta l'automatica di utilizzare la versione precedente di MFC, anziché di Mfc42.dll che si trova nella directory di sistema di Windows.

Status

Microsoft ha confermato che questo un problema in Microsoft i prodotti elencati in questo articolo. Questo bug è stato risolto in Visual Studio 6.0 Service Pack 1.

Per ottenere questo service pack, il seguente sito Microsoft Web:
http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx
Per ulteriori informazioni su Visual Studio 6.0 Service Pack 1, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
193009File Readme di Visual Studio 6.0 Service Pack 1
194022Visual Studio 6.0 service pack, che cosa, dove, perché
194295Come riconoscere che è installato un service pack di Visual Studio

Informazioni

Questo bug è stato trovato in 8 WordPerfect fornito come parte di Corel Office Suite 8. Questo errore si verifica solo con la versione di Visual c ++ 6.0 di Mfc42.dll.

Proprietà

Identificativo articolo: 192942 - Ultima modifica: sabato 22 febbraio 2014 - Revisione: 5.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Foundation Class Library 4.2 alle seguenti piattaforme
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Chiavi: 
kbnosurvey kbarchive kbmt kbqfe kbbug kbfix kbnoupdate kbvc600sp1fix kbvs600sp1fix KB192942 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 192942
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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