haltpunkt am ende eines konstruktors



  • hallo zusammen,

    wenn ich mein programm unter visual studio im debug modus starte, dann bricht es am ende eines konstruktors mit der meldung "... hat einen Haltepunkt ausgelöst." ab. leider sind im call stack keinerlei informationen zu einer bestimmten codezeile zu finden, die den haltepunkt auslösen könnte:

    mepOhneDll4.exe!0067006e() 	
    >	mepOhneDll4.exe!ModePanelFrame::ModePanelFrame(wxWindow * parent=0x01d95f88)  Zeile 512	C++
     	mepOhneDll4.exe!MainFrame::MainFrame()  Zeile 41 + 0x26 Bytes	C++
     	mepOhneDll4.exe!App::OnInit()  Zeile 33 + 0x25 Bytes	C++
     	mepOhneDll4.exe!wxAppConsole::CallOnInit()  Zeile 76 + 0x14 Bytes	C++
     	mepOhneDll4.exe!wxEntryReal(int & argc=1, wchar_t * * argv=0x01d85430)  Zeile 444 + 0x1b Bytes	C++
     	mepOhneDll4.exe!wxEntry(int & argc=1, wchar_t * * argv=0x01d85430)  Zeile 209 + 0xd Bytes	C++
     	mepOhneDll4.exe!wxEntry(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000, int nCmdShow=1)  Zeile 386 + 0xd Bytes	C++
     	mepOhneDll4.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f17, int nCmdShow=1)  Zeile 46 + 0x18 Bytes	C++
     	mepOhneDll4.exe!__tmainCRTStartup()  Zeile 574 + 0x35 Bytes	C
     	mepOhneDll4.exe!WinMainCRTStartup()  Zeile 399	C
     	kernel32.dll!7c817077() 	
     	[Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für kernel32.dll]	
     	mepOhneDll4.exe!_wsprintfA()  + 0x93b6b Bytes	C++
     	mepOhneDll4.exe!wxWindowBase::RemoveEventHandler()  + 0xef Bytes	C++
    

    die zeile 512 in der datei modePanelFrame ist das ende des konstruktors.

    was kann da das problem sein? warum kann das objekt nicht erstellt werden?
    starten im release modus funktioniert normal.

    danke!



  • Genaue Fehlermeldung des Debuggers und Code des Constructors bitte.
    rya.



  • jau!
    die meldung ist einfach "mepOhneDll4.exe hat einen Haltepunkt ausgelöst".
    der call stack aus vs2008 steht zwar schon im ersten post, aber durch ein paar tests von mir haben sich zumindest die zeilennummern geändert, also hier nochmal:

    mepOhneDll4.exe!00690075() 	
    >	mepOhneDll4.exe!ModePanelFrame::ModePanelFrame(wxWindow * parent=0x01d96140)  Zeile 526	C++
     	mepOhneDll4.exe!MainFrame::MainFrame()  Zeile 40 + 0x26 Bytes	C++
     	mepOhneDll4.exe!App::OnInit()  Zeile 33 + 0x25 Bytes	C++
     	mepOhneDll4.exe!wxAppConsole::CallOnInit()  Zeile 76 + 0x14 Bytes	C++
     	mepOhneDll4.exe!wxEntryReal(int & argc=1, wchar_t * * argv=0x01d85530)  Zeile 444 + 0x1b Bytes	C++
     	mepOhneDll4.exe!wxEntry(int & argc=1, wchar_t * * argv=0x01d85530)  Zeile 209 + 0xd Bytes	C++
     	mepOhneDll4.exe!wxEntry(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000, int nCmdShow=1)  Zeile 386 + 0xd Bytes	C++
     	mepOhneDll4.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f17, int nCmdShow=1)  Zeile 46 + 0x18 Bytes	C++
     	mepOhneDll4.exe!__tmainCRTStartup()  Zeile 574 + 0x35 Bytes	C
     	mepOhneDll4.exe!WinMainCRTStartup()  Zeile 399	C
     	kernel32.dll!7c817077() 	
     	[Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für kernel32.dll]	
     	mepOhneDll4.exe!_wsprintfA()  + 0x9388e Bytes	C++
     	8b000000()
    

    die zeile 526 ist die schließende klammer des konstruktors. leider ist der ktor ein zentraler eines recht komplexen projektes, insofern lang:

    ModePanelFrame::ModePanelFrame(wxWindow* parent) : 
    	wxPanel(parent), 
    	Observer(isolateClassName(wxString(typeid(this).name(), wxConvUTF8))),
    	Observable(isolateClassName(wxString(typeid(this).name(), wxConvUTF8)))
    {
    	//modePanelType = MPT_AUX;
    	setNotebookPageSelected(-1);
    	toBeDeleted = NULL;
    
    	/*	bSizer1	
    			obenSizer
    				mainplotter
    				obenRechtsSizer
    					obenRechtsObenSizer
    						boxSizer
    							indexInfosButtonsSizer
    								indexInfoSizer
    								indexButtonSizer
    							arrowSizer
    					changeSzContainer
    						changeSizer
    							auxPlotterPanel
    			changeSizerBottom
    
    	*/
    
    	//SetBackgroundStyle(wxBG_STYLE_CUSTOM);
    	parent->SetBackgroundColour( colBack );
    
    	//--- Sizer "Hierarchie" ---
    	wxBoxSizer* bSizer1;
    	bSizer1 = new wxBoxSizer( wxVERTICAL );
    
    	wxBoxSizer* obenSizer;
    	obenSizer = new wxBoxSizer( wxHORIZONTAL );
    
    	//--- Mainplotter ---
    	setMainPlotter(new PlotterXY(this, 0, true)); 
    	getMainPlotter()->SetSize(100, 100);  // quadratische Grundform festlegen
    
    	getMainPlotter()->setCalCurve(SystemState::getInstance()->getCalCurve());
    	getMainPlotter()->setMaskType(1);
    	getMainPlotter()->setDefectThreshold(SystemState::getInstance()->getPlotterConfig()->getDefectThreshold());
    	getMainPlotter()->setShowDefectThreshold(true);
    	//getMainPlotter()->setScalesDB(
    	//	SystemState::getInstance()->getScaleChn0X(),
    	//	SystemState::getInstance()->getScaleChn0Y());
    	obenSizer->Add( getMainPlotter(), 4, wxALL | wxSHAPED/* | wxEXPAND*/ | wxALIGN_CENTER, 5 );
    
    	// rechts oben
    	wxBoxSizer* obenRechtsSizer = new wxBoxSizer( wxVERTICAL );
    
    	wxBoxSizer* obenRechtsObenSizer= new wxBoxSizer( wxVERTICAL );
    
    	this->SetForegroundColour(wxColour(255, 255, 255));
    	wxStaticBoxSizer* boxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Steuerung")), wxHORIZONTAL );
    	obenRechtsObenSizer->Add(boxSizer, 0, wxEXPAND | wxRIGHT | wxALIGN_CENTER_HORIZONTAL, 5);
    
    	wxBoxSizer* indexInfosButtonsSizer;
    	indexInfosButtonsSizer = new wxBoxSizer( wxVERTICAL );
    
    	boxSizer->Add( indexInfosButtonsSizer, 0, wxEXPAND | wxRIGHT, 30);
    
    	wxFlexGridSizer* indexInfosSizer;
    	indexInfosSizer = new wxFlexGridSizer( 5, 2, 0, 0 );
    	indexInfosSizer->SetFlexibleDirection( wxBOTH );
    	indexInfosSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
    	sizersWithButtons.Append(indexInfosSizer);
    
    	// ------------------- index infos felder ---------------------
    	m_staticText1 = new staticTextPropagator(this, wxT("Kunde:"), wxT("fixed"));
    	m_staticText1->Wrap( -1 );
    	m_staticText1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
    	m_staticText1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_ACTIVEBORDER ) );
    
    	indexInfosSizer->Add( m_staticText1, 1, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxLEFT, 30 );
    
    	kundeText = new staticTextPropagator(this, wxT("---"));
    	kundeText->Wrap( -1 );
    	kundeText->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
    	kundeText->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_CAPTIONTEXT ) );
    
    	indexInfosSizer->Add( kundeText, 1, wxALIGN_BOTTOM|wxLEFT|wxTOP, 9 );
    
    	m_staticText2 = new staticTextPropagator(this, wxT("Prüfort:"), wxT("fixed"));
    	m_staticText2->Wrap( -1 );
    	m_staticText2->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_ACTIVEBORDER ) );
    
    	indexInfosSizer->Add( m_staticText2, 1, wxALIGN_BOTTOM|wxALIGN_RIGHT, 7 );
    
    	pruefortText = new staticTextPropagator(this, wxT("---"));
    	pruefortText->Wrap( -1 );
    	pruefortText->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_CAPTIONTEXT ) );
    
    	indexInfosSizer->Add( pruefortText, 1, wxALIGN_BOTTOM|wxLEFT|wxTOP, 9 );
    
    	m_staticText21 = new staticTextPropagator(this, wxT("Projektnr:"), wxT("fixed"));
    	m_staticText21->Wrap( -1 );
    	m_staticText21->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_ACTIVEBORDER ) );
    
    	indexInfosSizer->Add( m_staticText21, 1, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxBOTTOM, 9 );
    
    	projektnrText = new staticTextPropagator(this, wxT("---"));
    	projektnrText->Wrap( -1 );
    	projektnrText->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_CAPTIONTEXT ) );
    
    	indexInfosSizer->Add( projektnrText, 1, wxALIGN_BOTTOM|wxALIGN_LEFT|wxBOTTOM|wxLEFT|wxTOP, 9 );
    
    	m_staticText7 = new staticTextPropagator(this, wxT("Objekt:"), wxT("fixed"));
    	m_staticText7->Wrap( -1 );
    	m_staticText7->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_ACTIVEBORDER ) );
    
    	indexInfosSizer->Add( m_staticText7, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 3 );
    
    	objektChoice = new choicePropagator(this, ID_CHOICE_OBJ, _("fixed"));
    	objektChoice->SetMinSize( wxSize( 120,-1 ) );
    
    	indexInfosSizer->Add( objektChoice, 1, wxLEFT, 7 );
    
    	m_staticText8 = new staticTextPropagator(this, wxT("Bündel:"), wxT("fixed"));
    	m_staticText8->Wrap( -1 );
    	m_staticText8->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_ACTIVEBORDER ) );
    
    	indexInfosSizer->Add( m_staticText8, 1, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxBOTTOM, 4 );
    
    	buendelChoice = new choicePropagator( this, ID_CHOICE_BND );
    	buendelChoice->SetMinSize( wxSize( 120,-1 ) );
    
    	indexInfosSizer->Add( buendelChoice, 1, wxLEFT|wxTOP, 7 );
    
    	// -------------------- INDEX BUTTONS ------------------------------
    
    	indexInfosButtonsSizer->Add( indexInfosSizer, 0, wxEXPAND, 5 );
    	wxImage::AddHandler(new wxPNGHandler);
    
    	wxBoxSizer* indexButtonsSizer;
    	indexButtonsSizer = new wxBoxSizer( wxHORIZONTAL );
    	sizersWithButtons.Append(indexButtonsSizer);
    
    	fileopenButton = new imageButton( this, ID_INDEX_OEFFNEN, _wxConvertMemoryToBitmap(fileopen, sizeof fileopen), wxDefaultPosition, wxSize( 31,27 ), wxWANTS_CHARS, wxDefaultValidator, _("fixed"));
    	fileopenButton->SetBitmapDisabled( _wxConvertMemoryToImage(fileopen_disabled, sizeof fileopen_disabled));
    	fileopenButton->SetBitmapSelected( _wxConvertMemoryToImage(fileopen_clicked, sizeof fileopen_clicked));
    	fileopenButton->SetBitmapFocus( _wxConvertMemoryToImage(fileopen_hover, sizeof fileopen_hover));
    	fileopenButton->SetBitmapHover(_wxConvertMemoryToImage(fileopen_hover, sizeof fileopen_hover));
    	fileopenButton->SetBackgroundColour( colBack );
    
    	indexButtonsSizer->Add( fileopenButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	filecloseButton = new imageButton( this, ID_INDEX_SCHLIESSEN, _wxConvertMemoryToBitmap(fileclose, sizeof fileclose), wxDefaultPosition, wxSize( 27,27 ));
    	filecloseButton->SetBitmapDisabled( _wxConvertMemoryToImage(fileclose_disabled, sizeof fileclose_disabled));
    	filecloseButton->SetBitmapSelected( _wxConvertMemoryToImage(fileclose_clicked, sizeof fileclose_clicked));
    	filecloseButton->SetBitmapFocus( _wxConvertMemoryToImage(fileclose_hover, sizeof fileclose_hover));
    	filecloseButton->SetBitmapHover(_wxConvertMemoryToImage(fileclose_hover, sizeof fileclose_hover));
    	filecloseButton->SetBackgroundColour( colBack );
    	filecloseButton->Enable( false );
    
    	indexButtonsSizer->Add( filecloseButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap9 = new wxStaticBitmap( this, wxID_ANY, _wxConvertMemoryToBitmap(spacer, sizeof spacer), wxDefaultPosition, wxSize( 40,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap9->SetBackgroundColour( colBack );
    	indexButtonsSizer->Add( emptyBitmap9, 0, wxEXPAND, 5 );
    
    	filesaveButton = new imageButton( this, ID_SIGNAL_SPEICHERN, _wxConvertMemoryToBitmap(filesave, sizeof filesave), wxDefaultPosition, wxSize( 27,27 ), wxWANTS_CHARS, wxDefaultValidator, _("fixed"));
    	filesaveButton->SetBitmapDisabled( _wxConvertMemoryToImage(filesave_disabled, sizeof filesave_disabled));
    	filesaveButton->SetBitmapSelected( _wxConvertMemoryToImage(filesave_clicked, sizeof filesave_clicked));
    	filesaveButton->SetBitmapFocus( _wxConvertMemoryToImage(filesave_hover, sizeof filesave_hover));
    	filesaveButton->SetBitmapHover(_wxConvertMemoryToImage(filesave_hover, sizeof filesave_hover));
    	filesaveButton->SetBackgroundColour( colBack );
    	filesaveButton->Enable( false );
    
    	indexButtonsSizer->Add( filesaveButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap10 = new wxStaticBitmap( this, wxID_ANY, _wxConvertMemoryToBitmap(spacer, sizeof spacer), wxDefaultPosition, wxSize( 10,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap10->SetBackgroundColour( colBack );
    	indexButtonsSizer->Add( emptyBitmap10, 0, wxEXPAND, 5 );
    
    	recordButton = new imageButton( this, ID_RECORD, _wxConvertMemoryToBitmap(record, sizeof record), wxDefaultPosition, wxSize( 27,27 ), wxWANTS_CHARS, wxDefaultValidator, _("fixed"));
    	recordButton->SetBitmapDisabled( _wxConvertMemoryToImage(record_disabled, sizeof record_disabled));
    	recordButton->SetBitmapSelected( _wxConvertMemoryToImage(record_clicked, sizeof record_clicked));
    	recordButton->SetBitmapFocus( _wxConvertMemoryToImage(record_hover, sizeof record_hover));
    	recordButton->SetBitmapHover(_wxConvertMemoryToImage(record_hover, sizeof record_hover));
    	recordButton->SetBackgroundColour( colBack );
    	indexButtonsSizer->Add( recordButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	stopButton = new imageButton( this, ID_STOP, _wxConvertMemoryToBitmap(stop, sizeof stop), wxDefaultPosition, wxSize( 27,27 ), wxWANTS_CHARS, wxDefaultValidator, _("fixed"));
    	stopButton->SetBitmapDisabled( _wxConvertMemoryToImage(stop_disabled, sizeof stop_disabled));
    	stopButton->SetBitmapSelected( _wxConvertMemoryToImage(stop_clicked, sizeof stop_clicked));
    	stopButton->SetBitmapFocus( _wxConvertMemoryToImage(stop_hover, sizeof stop_hover));
    	stopButton->SetBitmapHover(_wxConvertMemoryToImage(stop_hover, sizeof stop_hover));
    	stopButton->SetBackgroundColour( colBack );
    	indexButtonsSizer->Add( stopButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	pauseButton = new imageButton( this, ID_PAUSE, _wxConvertMemoryToBitmap(pause, sizeof pause), wxDefaultPosition, wxSize( 27,27 ), wxWANTS_CHARS, wxDefaultValidator, _("fixed"));
    	pauseButton->SetBitmapDisabled( _wxConvertMemoryToImage(pause_disabled, sizeof pause_disabled));
    	pauseButton->SetBitmapSelected( _wxConvertMemoryToImage(pause_clicked, sizeof pause_clicked));
    	pauseButton->SetBitmapFocus( _wxConvertMemoryToImage(pause_hover, sizeof pause_hover));
    	pauseButton->SetBitmapHover(_wxConvertMemoryToImage(pause_hover, sizeof pause_hover));
    	pauseButton->SetBackgroundColour( colBack );
    	indexButtonsSizer->Add( pauseButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	playButton = new imageButton( this, ID_PLAY, _wxConvertMemoryToBitmap(play, sizeof play), wxDefaultPosition, wxSize( 27,27 ), wxWANTS_CHARS, wxDefaultValidator, _("fixed"));
    	playButton->SetBitmapDisabled( _wxConvertMemoryToImage(play_disabled, sizeof play_disabled));
    	playButton->SetBitmapSelected( _wxConvertMemoryToImage(play_clicked, sizeof play_clicked));
    	playButton->SetBitmapFocus( _wxConvertMemoryToImage(play_hover, sizeof play_hover));
    	playButton->SetBitmapHover(_wxConvertMemoryToImage(play_hover, sizeof play_hover));
    	playButton->SetBackgroundColour( colBack );
    	indexButtonsSizer->Add( playButton, 0, wxALIGN_BOTTOM | wxLEFT | wxTOP | wxBOTTOM, 10 );
    
    	indexInfosButtonsSizer->Add( indexButtonsSizer, 0, wxEXPAND | wxALIGN_BOTTOM | wxTOP, 8 );
    
    	// -------------------- PFEILE -------------------------------------
    
    	wxFlexGridSizer* arrowsSizer;
    	arrowsSizer = new wxFlexGridSizer( 5, 4, 0, 0 );
    	arrowsSizer->SetFlexibleDirection( wxBOTH );
    	arrowsSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
    	sizersWithButtons.Append(arrowsSizer);
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap->Hide();
    	arrowsSizer->Add( emptyBitmap, 0, wxEXPAND, 5 );
    
    	arrowDblUpX = new imageButton( this, ID_DOUBLEUPX, _wxConvertMemoryToImage(doppeloben, sizeof doppeloben), wxDefaultPosition, wxSize( 28,29 ), wxBU_LEFT | wxWANTS_CHARS );	
    	arrowDblUpX->SetBitmapDisabled( _wxConvertMemoryToImage(doppeloben_disabled, sizeof doppeloben_disabled));
    	arrowDblUpX->SetBitmapSelected( _wxConvertMemoryToImage(doppeloben_clicked, sizeof doppeloben_clicked));
    	arrowDblUpX->SetBitmapFocus( _wxConvertMemoryToImage(doppeloben_hover, sizeof doppeloben_hover));
    	arrowDblUpX->SetBitmapHover(_wxConvertMemoryToImage(doppeloben_hover, sizeof doppeloben_hover));
    	arrowDblUpX->SetBackgroundColour( colBack );
    	arrowDblUpX->SetToolTip( wxT("höchste x Koordinate dieser Reihe") );
    
    	arrowsSizer->Add( arrowDblUpX, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT, 5 );
    
    	arrowDblUpY = new imageButton( this, ID_DOUBLEUPY, _wxConvertMemoryToImage(doppeloben, sizeof doppeloben), wxDefaultPosition, wxSize( 28,29 ), wxBU_LEFT | wxWANTS_CHARS );
    
    	arrowDblUpY->SetBitmapDisabled( _wxConvertMemoryToImage(doppeloben_disabled, sizeof doppeloben_disabled));
    	arrowDblUpY->SetBitmapSelected( _wxConvertMemoryToImage(doppeloben_clicked, sizeof doppeloben_clicked));
    	arrowDblUpY->SetBitmapFocus( _wxConvertMemoryToImage(doppeloben_hover, sizeof doppeloben_hover));
    	arrowDblUpY->SetBitmapHover( _wxConvertMemoryToImage(doppeloben_hover, sizeof doppeloben_hover));
    	arrowDblUpY->SetBackgroundColour( colBack );
    	arrowDblUpY->SetToolTip( wxT("höchste y Koordinate dieser Zeile") );
    
    	arrowsSizer->Add( arrowDblUpY, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxLEFT, 5 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap2 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap2->Hide();
    	arrowsSizer->Add( emptyBitmap2, 0, wxEXPAND, 5 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap3 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap3->Hide();
    	arrowsSizer->Add( emptyBitmap3, 0, wxEXPAND, 5 );
    
    	arrowUpX = new imageButton( this, ID_UPX, _wxConvertMemoryToImage(oben, sizeof oben), wxDefaultPosition, wxSize( 28,25 ), wxBU_LEFT | wxWANTS_CHARS );
    
    	arrowUpX->SetBitmapDisabled( _wxConvertMemoryToImage(oben_disabled, sizeof oben_disabled));
    	arrowUpX->SetBitmapSelected( _wxConvertMemoryToImage(oben_clicked, sizeof oben_clicked));
    	arrowUpX->SetBitmapFocus( _wxConvertMemoryToImage(oben_hover, sizeof oben_hover));
    	arrowUpX->SetBitmapHover( _wxConvertMemoryToImage(oben_hover, sizeof oben_hover));
    	arrowUpX->SetBackgroundColour( colBack );
    	arrowUpX->SetToolTip( wxT("nächste x Koordinate") );
    
    	arrowsSizer->Add( arrowUpX, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 7 );
    
    	arrowUpY = new imageButton( this, ID_UPY, _wxConvertMemoryToImage(oben, sizeof oben), wxDefaultPosition, wxSize( 28,25 ) );
    
    	arrowUpY->SetBitmapDisabled( _wxConvertMemoryToImage(oben_disabled, sizeof oben_disabled));
    	arrowUpY->SetBitmapSelected( _wxConvertMemoryToImage(oben_clicked, sizeof oben_clicked));
    	arrowUpY->SetBitmapFocus( _wxConvertMemoryToImage(oben_hover, sizeof oben_hover));
    	arrowUpY->SetBitmapHover( _wxConvertMemoryToImage(oben_hover, sizeof oben_hover));
    	arrowUpY->SetBackgroundColour( colBack );
    	arrowUpY->SetToolTip( wxT("nächste y Koordinate") );
    
    	arrowsSizer->Add( arrowUpY, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT, 7 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap4 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap4->Hide();
    	arrowsSizer->Add( emptyBitmap4, 0, wxEXPAND, 5 );
    
    	arrowLeft = new imageButton( this, ID_LEFT, _wxConvertMemoryToImage(links, sizeof links), wxDefaultPosition, wxSize( 38,44 ));
    
    	arrowLeft->SetBitmapDisabled( _wxConvertMemoryToImage(links_disabled, sizeof links_disabled));
    	arrowLeft->SetBitmapSelected( _wxConvertMemoryToImage(links_clicked, sizeof links_clicked));
    	arrowLeft->SetBitmapFocus( _wxConvertMemoryToImage(links_hover, sizeof links_hover));
    	arrowLeft->SetBitmapHover( _wxConvertMemoryToImage(links_hover, sizeof links_hover));
    	arrowLeft->SetBackgroundColour( colBack );
    	arrowLeft->SetToolTip( wxT("vorheriges Rohr nach Prüfreihenfolge") );
    
    	arrowsSizer->Add( arrowLeft, 0, wxALIGN_CENTER|wxRIGHT, 10 );
    
    	wxString textValue;
    
    	textKoordX = new coordCtrl( this, ID_TEXTX, wxT(""), wxDefaultPosition, wxSize( 42,-1 ), wxTE_CENTRE | wxWANTS_CHARS);
    	textKoordX->SetMaxLength( 3 ); 
    	textKoordX->SetFont( wxFont( 12, 70, 90, 92, false, wxEmptyString ) );
    
    	arrowsSizer->Add( textKoordX, 0, wxALIGN_CENTER|wxBOTTOM|wxRIGHT, 3 );
    
    	textKoordY = new coordCtrl( this, ID_TEXTY, wxT(""), wxDefaultPosition, wxSize( 42,-1 ), wxTE_CENTRE | wxWANTS_CHARS);
    	textKoordY->SetMaxLength( 3 ); 
    	textKoordY->SetFont( wxFont( 12, 70, 90, 92, false, wxEmptyString ) );
    
    	// validator, damit nur 0-9 eingegeben werden kann
    	wxArrayString includes;
        includes.Add(_("0")); includes.Add(_("1")); includes.Add(_("2")); includes.Add(_("3")); includes.Add(_("4"));
    	includes.Add(_("5")); includes.Add(_("6")); includes.Add(_("7")); includes.Add(_("8")); includes.Add(_("9"));
        wxTextValidator val = wxTextValidator(wxFILTER_INCLUDE_CHAR_LIST, &textValue);
        val.SetIncludes(includes);
    
        textKoordY->SetValidator(val);
    	textKoordX->SetValidator(val);
    
    	arrowsSizer->Add( textKoordY, 0, wxALIGN_CENTER|wxBOTTOM|wxLEFT, 3 );
    
    	arrowRight = new imageButton( this, ID_RIGHT, _wxConvertMemoryToImage(rechts, sizeof rechts), wxDefaultPosition, wxSize( 38,44 ));
    
    	arrowRight->SetBitmapDisabled( _wxConvertMemoryToImage(rechts_disabled, sizeof rechts_disabled));
    	arrowRight->SetBitmapSelected( _wxConvertMemoryToImage(rechts_clicked, sizeof rechts_clicked));
    	arrowRight->SetBitmapFocus( _wxConvertMemoryToImage(rechts_hover, sizeof rechts_hover));
    	arrowRight->SetBitmapHover( _wxConvertMemoryToImage(rechts_hover, sizeof rechts_hover));
    	arrowRight->SetBackgroundColour( colBack );
    	arrowRight->SetToolTip( wxT("nächstes Rohr nach Prüfreihenfolge") );
    
    	arrowsSizer->Add( arrowRight, 0, wxLEFT, 13 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap5 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap5->Hide();
    	arrowsSizer->Add( emptyBitmap5, 0, wxEXPAND, 5 );
    
    	arrowDownX = new imageButton( this, ID_DOWNX, _wxConvertMemoryToImage(unten, sizeof unten), wxDefaultPosition, wxSize( 28,25 ), wxBU_LEFT | wxWANTS_CHARS );
    
    	arrowDownX->SetBitmapDisabled( _wxConvertMemoryToImage(unten_disabled, sizeof unten_disabled));
    	arrowDownX->SetBitmapSelected( _wxConvertMemoryToImage(unten_clicked, sizeof unten_clicked));
    	arrowDownX->SetBitmapFocus( _wxConvertMemoryToImage(unten_hover, sizeof unten_hover));
    	arrowDownX->SetBitmapHover( _wxConvertMemoryToImage(unten_hover, sizeof unten_hover));
    	arrowDownX->SetBackgroundColour( colBack );
    	arrowDownX->SetToolTip( wxT("vorherige x Koordinate") );
    
    	arrowsSizer->Add( arrowDownX, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 7 );
    
    	arrowDownY = new imageButton( this, ID_DOWNY, _wxConvertMemoryToImage(unten, sizeof unten), wxDefaultPosition, wxSize( 28,25 ));
    
    	arrowDownY->SetBitmapDisabled( _wxConvertMemoryToImage(unten_disabled, sizeof unten_disabled));
    	arrowDownY->SetBitmapSelected( _wxConvertMemoryToImage(unten_clicked, sizeof unten_clicked));
    	arrowDownY->SetBitmapFocus( _wxConvertMemoryToImage(unten_hover, sizeof unten_hover));
    	arrowDownY->SetBitmapHover( _wxConvertMemoryToImage(unten_hover, sizeof unten_hover));
    	arrowDownY->SetBackgroundColour( colBack );
    	arrowDownY->SetToolTip( wxT("vorherige y Koordinate") );
    
    	arrowsSizer->Add( arrowDownY, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT, 7 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap6 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap6->Hide();
    	arrowsSizer->Add( emptyBitmap6, 0, wxEXPAND, 5 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap7 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap7->Hide();
    	arrowsSizer->Add( emptyBitmap7, 0, wxEXPAND, 5 );
    
    	arrowDblDownX = new imageButton( this, ID_DOUBLEDOWNX, _wxConvertMemoryToImage(doppelunten, sizeof doppelunten), wxDefaultPosition, wxSize( 30,28 ), wxBU_LEFT | wxWANTS_CHARS);
    
    	arrowDblDownX->SetBitmapDisabled( _wxConvertMemoryToImage(doppelunten_disabled, sizeof doppelunten_disabled));
    	arrowDblDownX->SetBitmapSelected( _wxConvertMemoryToImage(doppelunten_clicked, sizeof doppelunten_clicked));
    	arrowDblDownX->SetBitmapFocus( _wxConvertMemoryToImage(doppelunten_hover, sizeof doppelunten_hover));
    	arrowDblDownX->SetBitmapHover( _wxConvertMemoryToImage(doppelunten_hover, sizeof doppelunten_hover));
    	arrowDblDownX->SetBackgroundColour( colBack );
    	arrowDblDownX->SetToolTip( wxT("niedrigste x Koordinate dieser Reihe") );
    	arrowDblDownX->Disable();
    
    	arrowsSizer->Add( arrowDblDownX, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxTOP, 5 );
    
    	arrowDblDownY = new imageButton( this, ID_DOUBLEDOWNY, _wxConvertMemoryToImage(doppelunten, sizeof doppelunten), wxDefaultPosition, wxSize( 33,28 ), wxBU_LEFT | wxWANTS_CHARS);
    
    	arrowDblDownY->SetBitmapDisabled( _wxConvertMemoryToImage(doppelunten_disabled, sizeof doppelunten_disabled));
    	arrowDblDownY->SetBitmapSelected( _wxConvertMemoryToImage(doppelunten_clicked, sizeof doppelunten_clicked));
    	arrowDblDownY->SetBitmapFocus( _wxConvertMemoryToImage(doppelunten_hover, sizeof doppelunten_hover));
    	arrowDblDownY->SetBitmapHover( _wxConvertMemoryToImage(doppelunten_hover, sizeof doppelunten_hover));
    	arrowDblDownY->SetBackgroundColour( colBack );
    	arrowDblDownY->SetToolTip( wxT("niedrigste y Koordinate dieser Zeile") );
    
    	arrowsSizer->Add( arrowDblDownY, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxTOP, 5 );
    
    	// leerbild
    	wxStaticBitmap* emptyBitmap8 = new wxStaticBitmap( this, wxID_ANY, wxNullIcon, wxDefaultPosition, wxSize( 1,1 ), wxWANTS_CHARS, _("fixed"));
    	emptyBitmap8->Hide();
    	arrowsSizer->Add( emptyBitmap8, 0, wxEXPAND, 5 );
    
    	boxSizer->Add( arrowsSizer, 0, wxEXPAND | wxTOP | wxALIGN_LEFT, 5);
    
    	obenRechtsSizer->Add(obenRechtsObenSizer, 0, wxEXPAND | wxALL | wxALIGN_LEFT, 5 );
    
    	wxBoxSizer* changeSzContainer = new wxBoxSizer( wxHORIZONTAL );
    
    	//--- alle panels ---
    
    	changeSizer = new wxBoxSizer( wxVERTICAL );
    	specializedPanel = new AuxPlotterPanel(this);
    	specializedPanel->Show(false);
    
    	auxPanel = new AuxPlotterPanel(this);
    	defPanel = new DefectModePanel(this);
    	defPanel->Show(false);
    	calPanel = new CalModePanel(this);
    	calPanel->Show(false);
    
    	changeSizer->Add(auxPanel, 1, wxEXPAND);
    
    	changeSzContainer->Add( changeSizer, 1, wxEXPAND);
    	changeSzContainer->Add( 10, 1 );	// weil sonst beim changeSizer->replace die border sich aufaddieren
    
    	obenRechtsSizer->Add( changeSzContainer, 4, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, 5 );
    	obenSizer->Add( obenRechtsSizer, 3, wxEXPAND, 5 );
    	bSizer1->Add( obenSizer, 4, wxEXPAND, 5 );
    
    	//--- xytPlotter ---		
    	xytPlotterCont = new PlotterXytCont(this);
    	xytPlotterRecd = new PlotterXytRecd(this);
    	getXytPlotterRecd()->Show(false);
    
    	setXytPlotterType(XYT_CONT);
    
    	changeSizerBottom = new wxBoxSizer( wxHORIZONTAL );
    	changeSizerBottom->Add(getActiveXytPlotter(), 1, wxEXPAND | wxALIGN_CENTER, 0);
    
    	bSizer1->Add( changeSizerBottom, 1, wxEXPAND, 5 );
    
    	this->SetSizer( bSizer1 );
    
    	//--- Geräteaktivierung ---
    
    	// windows spezifischer callback bei vorliegen neuer messdaten
    	SetEventCallback(raiseSampleEvent); 
    
    	//SystemState::getInstance()->getEventProxy()->addObserver(this);
    	SystemState::getInstance()->getIndexCursor()->addObserver(this);
    	SystemState::getInstance()->getPlotterConfig()->addObserver(this);
    	SystemState::getInstance()->addObserver(this);
    
    	SystemState::getInstance()->setActiveBuffer(SystemState::getInstance()->getContBuffer());
    
    	setLastSample(-1);
    
    	Layout();
    	//wxWindow *test = FindFocus();
    	this->updateIndexButtons();
    	updatePlayerButtons();
    }
    

    in windbg geladen haben ich folgende anzeige:

    Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    CommandLine: "E:\ec works\ecworks_mep\_BUILD\debug\mepOhneDll4.exe"
    Symbol search path is: *** Invalid ***
    ****************************************************************************
    * Symbol loading may be unreliable without a symbol search path.           *
    * Use .symfix to have the debugger choose a symbol path.                   *
    * After setting your symbol path, use .reload to refresh symbol locations. *
    ****************************************************************************
    Executable search path is: 
    ModLoad: 00400000 00920000   mepOhneDll4.exe
    ModLoad: 7c910000 7c9c9000   ntdll.dll
    ModLoad: 7c800000 7c908000   F:\WINXP\system32\kernel32.dll
    ModLoad: 10000000 10461000   E:\ec works\ecworks_mep\_BUILD\debug\ecwdaWin.dll
    ModLoad: 6d850000 6da42000   F:\WINXP\system32\nicaiu.dll
    ModLoad: 64000000 64058000   F:\WINXP\system32\NIPALU.dll
    ModLoad: 64500000 64506000   F:\WINXP\system32\nipalut.dll
    ModLoad: 7c340000 7c396000   F:\WINXP\system32\MSVCR71.dll
    ModLoad: 1f700000 1f707000   F:\WINXP\system32\NIPAL32.dll
    ModLoad: 77da0000 77e4a000   F:\WINXP\system32\ADVAPI32.dll
    ModLoad: 77e50000 77ee2000   F:\WINXP\system32\RPCRT4.dll
    ModLoad: 77fc0000 77fd1000   F:\WINXP\system32\Secur32.dll
    ModLoad: 778f0000 779e4000   F:\WINXP\system32\SETUPAPI.dll
    ModLoad: 77ef0000 77f39000   F:\WINXP\system32\GDI32.dll
    ModLoad: 7e360000 7e3f1000   F:\WINXP\system32\USER32.dll
    ModLoad: 77be0000 77c38000   F:\WINXP\system32\msvcrt.dll
    ModLoad: 7e670000 7ee91000   F:\WINXP\system32\SHELL32.dll
    ModLoad: 77f40000 77fb6000   F:\WINXP\system32\SHLWAPI.dll
    ModLoad: 6d000000 6d017000   F:\WINXP\system32\niorbu.dll
    ModLoad: 64600000 64614000   F:\WINXP\system32\nirpc.dll
    ModLoad: 71a30000 71a3a000   F:\WINXP\system32\WSOCK32.dll
    ModLoad: 71a10000 71a27000   F:\WINXP\system32\WS2_32.dll
    ModLoad: 71a00000 71a08000   F:\WINXP\system32\WS2HELP.dll
    ModLoad: 78520000 785c3000   F:\WINXP\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_d495ac4e\MSVCR90.dll
    ModLoad: 6d280000 6d2b1000   F:\WINXP\system32\nimdbgu.dll
    ModLoad: 6e340000 6e35a000   F:\WINXP\system32\nimstsu.dll
    ModLoad: 6d0f0000 6d12d000   F:\WINXP\system32\nimxdfu.dll
    ModLoad: 6db20000 6e00c000   F:\WINXP\system32\nidmxfu.dll
    ModLoad: 6e370000 6e37b000   F:\WINXP\system32\nimxpu.dll
    ModLoad: 6ec70000 6ecb6000   F:\WINXP\system32\nimru2u.dll
    ModLoad: 6d050000 6d06e000   F:\WINXP\system32\nidimu.dll
    ModLoad: 6e1a0000 6e250000   F:\WINXP\system32\nimhwcfu.dll
    ModLoad: 76d20000 76d39000   F:\WINXP\system32\iphlpapi.dll
    ModLoad: 774b0000 775ed000   F:\WINXP\system32\ole32.dll
    ModLoad: 408b0000 40996000   F:\WINXP\system32\WININET.dll
    ModLoad: 00370000 00379000   F:\WINXP\system32\Normaliz.dll
    ModLoad: 452e0000 45413000   F:\WINXP\system32\urlmon.dll
    ModLoad: 770f0000 7717b000   F:\WINXP\system32\OLEAUT32.dll
    ModLoad: 40f50000 41138000   F:\WINXP\system32\iertutil.dll
    ModLoad: 6e180000 6e199000   F:\WINXP\system32\nimercu.dll
    ModLoad: 78130000 781cb000   F:\WINXP\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\MSVCR80.dll
    ModLoad: 00920000 00a44000   F:\WINXP\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_5d84dd2f\MSVCR90D.dll
    ModLoad: 773a0000 774a3000   F:\WINXP\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\COMCTL32.dll
    ModLoad: 76350000 7639a000   F:\WINXP\system32\COMDLG32.dll
    ModLoad: 00a50000 00bd9000   E:\ec works\ecworks_mep\_BUILD\debug\libsfWin.dll
    ModLoad: 10480000 10557000   F:\WINXP\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_5d84dd2f\MSVCP90D.dll
    ModLoad: 00be0000 0103a000   E:\ec works\ecworks_mep\_BUILD\debug\libdfWin.dll
    ModLoad: 01040000 01131000   E:\ec works\ecworks_mep\_BUILD\debug\libxml2.dll
    ModLoad: 01140000 0121a000   E:\ec works\ecworks_mep\_BUILD\debug\iconv.dll
    ModLoad: 003a0000 003b3000   E:\ec works\ecworks_mep\_BUILD\debug\zlib1.dll
    (d64.1188): Break instruction exception - code 80000003 (first chance)
    eax=00251eb4 ebx=7ffff000 ecx=00000003 edx=00000008 esi=00251f48 edi=00251eb4
    eip=7c91120e esp=0012fb20 ebp=0012fc94 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
    ntdll!DbgBreakPoint:
    7c91120e cc              int     3
    

    wird jemand daraus schlau?
    vielen dank!!!



  • hat niemand eine idee, wo ich zumindest ansetzen könnte, um dem fehler ein wenig näher zu kommen?



  • ok, das problem ist gelöst.

    ich hatte nicht daran gedacht, dass die von visual studio angezeigte position des fehlers nicht die ist, die direkt markiert wird, sondern dass die position markiert wird, die aufgrund eines vorhergehenden fehlers nicht mehr ausgeführt werden kann.
    der fehler lag also nicht im konstruktor selbst, sondern in der letzten vom konstruktor aufgerufenen funktion updatePlayerButtons();

    danke für eure ideen, möge dieser anfängerfehler jemand anderem helfen....


Anmelden zum Antworten