IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[VS C++] Exception non g�r�e type "System.AccessViolationException"


Sujet :

C++

  1. #1
    Membre confirm� Avatar de Valter
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Mars 2008
    Messages
    113
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Analyse syst�me

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par d�faut [VS C++] Exception non g�r�e type "System.AccessViolationException"
    Bonjour � tous,

    sur un de mes projets, je n'ai de cesse d'avoir cette erreur :
    Une exception non g�r�e du type 'System.AccessViolationException' s'est produite dans TEST.exe

    Informations suppl�mentaires*: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
    J'ai r�ussi � simplifier le projet un maximum :

    Test.h :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #ifndef DEF_TEST
    #define DEF_TEST
     
    #include <iostream>
     
    class Test
    {
        public:
            Test(char *name, bool secure, char *type);
    	char *Write();
    	void Launch();
            ~File();
     
            char *name;
            bool secure;
    		char *type;
    };
     
    #endif
    Test.cpp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <iostream>
    #include "Test.h"
     
    Test::Test(char *name, bool secure, char *type) {
    	this->name = name;
    	this->secure = secure;
    	this->type = type;
    }
     
    char *Test::Write() {
    	char *st;
    	strcat(st, this->name);
    	strcat(st, ".");
    	strcat(st, this->type);
    	return st;
    }
    main.cpp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    #include "Test.h"
     
    using namespace std;
     
    int main()
    {
    	Test *f0 = new File("Présentation", false, "exe");
    	Test *f1 = new File("Page", false, "html");
    	cout << "(1) " << f0->Write() << endl;
     
    	system("PAUSE");
    	return 0;
    }
    Merci infiniment,

  2. #2
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de caf�
    Inscrit en
    Mai 2007
    Messages
    1 048
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consommateur de caf�
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par d�faut
    Ta variable "st" doit �tre correctement initialis�!
    Message que j'obtiens:
    The variable 'st' is being used without being initialized
    EDIT:
    Au passage oublie les char * et utilise les strings de la libraire standard!
    Pour les concat�nations tu fera str1 += str2;
    et pour obtenir un char* str1.c_str()

    cf : http://cpp.developpez.com/faq/cpp/?page=strings

  3. #3
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de caf�
    Inscrit en
    Mai 2007
    Messages
    1 048
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consommateur de caf�
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par d�faut
    Ce qui marche chez moi:
    Test.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <iostream>
    #include "Test.h"
     
    Test::Test(std::string name, bool secure, std::string type) {
        this->name = name;
        this->secure = secure;
        this->type = type;
    }
     
    std::string Test::Write() {
        std::string st;
        st += this->name ;
        st += "."; 
        st += this->type;
        return st;
    }
    Test.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    #ifndef DEF_TEST
    #define DEF_TEST
     
    #include <iostream>
     
    class Test
    {
        public:
            Test(std::string name, bool secure, std::string type);
            std::string Write();
        void Launch();
            ~Test();
     
            std::string name;
            bool secure;
            std::string type;
    };
     
    #endif
    Main.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    #include "Test.h"
     
    using namespace std;
     
    int main()
    {
        Test *f0 = new Test("Présentation", false, "exe");
        Test *f1 = new Test("Page", false, "html");
        cout << "(1) " << f0->Write().c_str() << endl;
     
        system("PAUSE");
        return 0;
    }

  4. #4
    Membre confirm� Avatar de Valter
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Mars 2008
    Messages
    113
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Analyse syst�me

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par d�faut
    Ah oui, merci bien.

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Attention, si tu as une System.AccessViolationException au lieu d'une "unhandled exception 0xC0000005: Access Violation", c'est que tu codes pour le Framework .Net (option /clr activ�e). Hors, vu ton code, cela n'a pas l'air d'�tre ton intention...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 30/05/2014, 14h45
  2. R�ponses: 0
    Dernier message: 30/05/2014, 10h54
  3. R�ponses: 2
    Dernier message: 21/09/2013, 10h56
  4. R�ponses: 2
    Dernier message: 09/07/2007, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo