Artikel-ID: 193100 - Geändert am: Dienstag, 7. August 2007 - Version: 6.2 Update: Wenn Sie ein Unicode CString in Visual C++ 6.0 serialisieren, auftreten eine ZugriffsverletzungProblembeschreibungBeim Serialisieren in Unicode CString in eine MBCS-MFC Anwendung oder umgekehrt (umgekehrt), die CString aus der Datei wird gelesen, in ein CString den Buildtyp konvertiert und die ursprüngliche CString wird gelöscht. Wenn die ursprüngliche CString löschen wird möglicherweise eine Zugriffsverletzung oder eine ungültige Seite angezeigt. Der Problemcode ist in Zeile 270 Arccore.cpp. Die hier beschriebenen Symptome sind nur in Releasebuilds offensichtlich. UrsacheCString im Releasebuild verwendet einen eigenen Speicher-Manager (die CFixedAlloc-Klasse) für Zeichenfolgen Größe weniger 512 Bytes. So werden für alle CString (mit weniger als 512 Bytes) durch CFixedAlloc::Alloc() durch CString::AllocBuffer() und die entsprechenden Deallocations vorgenommene Zuordnungen von CFixedAlloc::Free durch CString::FreeData() vorgenommen. In der CString Serialisierung Funktion Operator: >> (CArchive& ar, CString& string) anstelle von Aufrufen von CString::FreeData(), um die Daten freizugeben, die Delete-Operator wird aufgerufen und können dadurch das oben erwähnte Problem. LösungÄndern Sie Zeile 270 in Arccore.cpp von der folgenden: NMAKE DEBUG = 1 CODEVIEW = 0 Weitere Informationen zum Erstellen einer statischen Verknüpfung Bibliothek Variante aus der Datei Readme.txt, die mit Visual C++ oder in xxxx\MFC\SRC\README.TXT ausgeliefert wird abgerufen werden kann (wobei Xxxx der Verzeichnisname für Visual C++ ist Produkt; standardmäßig unter c:\Programme\Microsoft Visual Studio\VC98 für Visual C++, Version 6.0). Die stellen Datei im selben Verzeichnis existiert und heißt MAKEFILE.Hinweis: Sie können die Datenquelle ändern und neu erstellen eine DLL-Version von MFC-Bibliothek. Sie können jedoch eine Einzelhandelsversion verteilen (/ release) von der geänderten Bibliothek nur, wenn Sie es etwas other than MFCxx.dll umbenennen. Nicht verteilen die Debugversion der vordefinierte oder benutzerdefinierte erstellt Debug-DLL. "MFC Technischer Hinweis 33" Weitere Informationen finden. StatusMicrosoft hat bestätigt, dass dies einen Fehler in den Microsoft-Produkten ist, die im Abschnitt "Gilt für" aufgeführt sind.Dieser Bug wurde in Visual Studio 6.0 Service Pack 1 behoben. Dieses Servicepack erhalten die folgende Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx
(http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx)
Weitere Informationen zu Visual Studio 6.0 Service Pack 1 finden Sie folgende Artikel der Microsoft Knowledge Base: 193009
(http://support.microsoft.com/kb/193009/
)
Readme zu Visual Studio 6.0 Servicepack 1 194022
(http://support.microsoft.com/kb/194022/
)
Visual Studio 6.0 Service packs, was, wo, warum 194295
(http://support.microsoft.com/kb/194295/
)
Wie Sie feststellen, dass ein Visual Studio Servicepack installiert ist Weitere InformationenDie Aufrufliste tritt die Zugriffsverletzung sollten die folgenden aussehen: Die Informationen in diesem Artikel beziehen sich auf:
Maschinell übersetzter ArtikelWichtig: 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: 193100
(http://support.microsoft.com/kb/193100/en-us/
)
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.
| SPRACHE AUSWÄHLEN
|


Zum Anfang
