Exception->Message in String-Variable schreiben



  • Hallo,

    wieso kann ich die "Message" aus meinem "System::Exception" nicht in eine String-Variable tun?

    ...
    #include <string>
    ...
    using std::string;
    ...
    string ErrorMessage;
    ...
    try
    {
    	MyConnection->Open();
    	return true;
    }
    catch(System::Exception * e)
    {
    	ErrorMessage = e->Message->ToString;
    	return false;
    }
    ...
    

    Es kommen drei Fehlermeldungen:

    filename.cpp(28): error C2475: 'System::String::ToString': Erstellen eines Zeigers auf einen Member erfordert die explizite Verwendung des Adressoperators ('&') und einen gekennzeichneten Namen
    
    filename.cpp(28): error C2440: '=': 'overloaded-function' kann nicht in 'std::string' konvertiert werden
    
    filename.cpp(28): error C2593: 'Operator =' ist mehrdeutig
    

    Kann mir geholfen werden?

    Vielen Dank & Liebe Grüße



  • Servus,

    warum benutzt du denn nicht die System::String Klasse von .Net? Ich weiss jetzt nicht wie das Andere machen, da ich auch nicht soviel mit C++.Net zu tun habe, würde ich trotzdem vorschlagen die StringKlasse von .Net zu benutzen.

    System::String* error = NULL;
    
    try
    {
    
    }
    catch (System::Exception *e)
    {
         error = e->Message;
    }
    

    mfg
    Hellsgore



  • hmm... Dank für die Antwort. Ich habe folgendes:

    System::String* error = NULL;
    

    Aber das funktioniert leider nicht. Ich bekomme folgende Fehlermeldungen:

    filename.h(6): error C2864: 'error': Es können nur konstante statische integrale Datenmember innerhalb einer Klasse oder einer Struktur initialisiert werden
    

    ...und...

    filename.h(6): error C3265: Ein verwalteter 'error' kann nicht in einem nicht verwalteten 'cKlassenname' deklariert werden
    


  • Tach,

    Ich würds so machen:

    System::String* error = String::Empty;
    //bzw. System::String* error = "";
    

    Guennsen


Anmelden zum Antworten