Exceptions



  • Hallo,
    experimentiere gerade mit Visual C++ und Exceptions.
    Fall1 und Fall4 funktionieren wunderbar, bei Fall2 und Fall3 bekomme ich die Fehlermeldung "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

    Im debug-Modus kann ich bis zum Aufruf der Exception für den const char * steppen, anschließend kommt oben genannte Fehlermeldung. Warum ist das so?

    void Form1::DoSomething()
    	{
    		try
    		{
    			int foo[10];
    			for(int i=0;i<20;++i)
    				foo[i]=i;
    
    			String ^err_Managed="err_Managed";
    			const char *err_Unmanaged="err_Unmanaged";
    			//throw err_Managed;	//Fall1
    			throw err_Unmanaged;	//Fall2
    			throw "err_Unmanaged";	//Fall3
    			//throw;		//Fall4
    		}
    		catch(const char *err)
    		{
    			MessageBox::Show(gcnew String(err));
    		}
    		catch(String ^err)
    		{
    			MessageBox::Show(err);
    		}
    		catch(System::Exception ^ex)
    		{
    			MessageBox::Show(ex->Message);
    		}
    	}
    

    Danke und Gruß



  • Du mischt hier C/C++ und C++/CLI... das würde ich Dir nichtraten... es sei denn Du machst es bewusst und weisst, was Du tust. Ansonsten Dir von C++/CLI ab!
    http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/

    Lass das C++/CLI weg, und alles tut wie Du es Dir wünscht...


Anmelden zum Antworten