Update: DLL, die ATL CImage-Klasse wird verwendet, kann ein Deadlock in einem Prozess verursachen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 322909 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Eine DLL, die die ATL (Active Template Library) CImage -Klasse kann einen Deadlock verursachen, wenn entladen aus einem Prozess oder bei der Ladevorgang beendet ist.

Ursache

Dieses Problem, da die CImage -Klasse initialisiert und dann GDI + herunterfährt mithilfe der statischen geschachtelten Klasse CInitGDIPlus . Diese Klasse initialisiert GDI + vor jeder CImage -Funktion, die GDI + aufgerufen wird, erfordert. GDI + wird heruntergefahren durch GdiplusShutdown aufrufen, wenn die CInitGDIPlus -Klasse zerstört wird. CInitGDIPlus ist eine statische Klasse, die in einer DLL im Kontext von DllMain zerstört wird. Der Dokumentation angegeben, dass GdiplusShutdown in DllMain aufgerufen werden kann nicht.

Lösung

Informationen zu Service Packs

Installieren Sie das neueste Servicepack für Microsoft Visual Studio .NET, um dieses Problem zu beheben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
837234Liste der in Visual Studio .NET 2002 Service Pack 1 behobenen Probleme

Hotfix-Informationen

Weitere Informationen zu diesem Hotfix finden Sie im folgenden Artikel der Microsoft Knowledge Base:
326459COleDateTime Vergleich Assertionen Wert bzw. gibt falschen zurück

Status

Microsoft hat bestätigt, dass dies ein Problem in den Microsoft-Produkten ist, die im Abschnitt "Gilt für" dieses Artikels aufgeführt sind. Dieses Problem wurde erstmals im Visual Studio .NET 2002 Service Pack 1.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie ein ATL-DLL-Projekt mit dem Namen Control_Name htm und fügen Sie ein ActiveX-Steuerelement.
  2. Fügen Sie einen CImage -Member, der ActiveX-Steuerelementklasse.
  3. Rufen Sie CImage::Load in den Klassenkonstruktor ActiveX-Steuerelement.
  4. Zeigen Sie die .htm-Seite, die Sie für das Steuerelement erstellt haben (Control_Name htm) in Microsoft Internet Explorer.
  5. Beenden Sie Internet Explorer. Sie sollten die folgenden Bedingungen auftreten:
    • Internet Explorer kann nicht erneut gestartet werden.

      -oder-
    • Der Prozess IExplore.exe wird weiterhin im Task-Manager angezeigt.

Eigenschaften

Artikel-ID: 322909 - Geändert am: Dienstag, 27. September 2005 - Version: 7.1
Die Informationen in diesem Artikel beziehen sich auf:
  • The Microsoft Active Template Library (ATL) 7.0, wenn verwendet mit:
    • Microsoft Visual Studio .NET 2002 Enterprise Architect
    • Microsoft Visual Studio .NET 2002 Enterprise Developer
    • Microsoft Visual Studio .NET 2002 Professional Edition
    • Microsoft Visual Studio .NET 2002 Academic Edition
Keywords: 
kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbvs2002sp1fix kbbug kbfix KB322909 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 322909
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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