codeguru
nicht mehr wegzudenken
Hallo Forum, hier ein kleines Problemche..... ich debugge gerade eine Anwendung deren Oberfläche Gebrauch von der CMenu Klasse aus der MFC macht. Man klickt mit der rechten Maustaste auf ein Dokument das gerade offen ist, und der Message Handler ruft dann meine Komponente auf die das Menü zeichnet.
CMenu ist eigentlich generisch, gibts auch unter Linux als X11 Funktion, ist sogar in Java implementiert... sprich, total langweiliger, uralter, millionenfach durchgesehener Programmcode.
Meine Komponente wird mit Visual Studio 6.0 SP6 entwickelt, das geht derzeit auch nicht anders.
Mein Problemche besteht darin, daß das Aufpoppen eines Submenüs mit seltsamen Debug Assertions hängt, wenn
1.) extrem wenig ARbeitsspeicher verfügbar ist
2.) die Anwendung auf einem Terminalserver läuft bzw. in einer Terminal Session
Ich hab schon alles nachkontrolliert - alle Parameter sind gültig, der Pointer zum Menü ist gültig, und trotzdem krieg ich "second chance assertion failed in cmdtarg.cpp line 52" - das ist ne Datei vom Visual Studio und enthält so ein paar Klassendefinitionen die ich mangels detaillierter MFC Kenntnisse nicht ganz deuten kann, der zugehörige Code sieht so aus:
CCmdTarget::~CCmdTarget()
{
#ifndef _AFX_NO_OLE_SUPPORT
if (m_xDispatch.m_vtbl != 0)
((COleDispatchImpl*)&m_xDispatch)->Disconnect();
ASSERT(m_dwRef <= 1);////////hier knallt es!!!! Das ist Zeile 52
#endif
#ifdef _AFXDLL
m_pModuleState = NULL;
#endif
}
CMenu ist eigentlich generisch, gibts auch unter Linux als X11 Funktion, ist sogar in Java implementiert... sprich, total langweiliger, uralter, millionenfach durchgesehener Programmcode.
Meine Komponente wird mit Visual Studio 6.0 SP6 entwickelt, das geht derzeit auch nicht anders.
Mein Problemche besteht darin, daß das Aufpoppen eines Submenüs mit seltsamen Debug Assertions hängt, wenn
1.) extrem wenig ARbeitsspeicher verfügbar ist
2.) die Anwendung auf einem Terminalserver läuft bzw. in einer Terminal Session
Ich hab schon alles nachkontrolliert - alle Parameter sind gültig, der Pointer zum Menü ist gültig, und trotzdem krieg ich "second chance assertion failed in cmdtarg.cpp line 52" - das ist ne Datei vom Visual Studio und enthält so ein paar Klassendefinitionen die ich mangels detaillierter MFC Kenntnisse nicht ganz deuten kann, der zugehörige Code sieht so aus:
CCmdTarget::~CCmdTarget()
{
#ifndef _AFX_NO_OLE_SUPPORT
if (m_xDispatch.m_vtbl != 0)
((COleDispatchImpl*)&m_xDispatch)->Disconnect();
ASSERT(m_dwRef <= 1);////////hier knallt es!!!! Das ist Zeile 52
#endif
#ifdef _AFXDLL
m_pModuleState = NULL;
#endif
}