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++/CLI Discussion :

Déclarer un objet avec Visual Studio 2010


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Déclarer un objet avec Visual Studio 2010
    Bonjour

    précédemment, pour adresser la méthode d'une classe je passais systématiquement par un objet déclaré sur cette classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Test6::OpenAFile objOpenAFile;
    Ce qui permet ultérieurement d'adresser les méthodes de la classe par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objOpenAFile.InitializeComponent();
    Visual Studio 2010 traite bien l'appel mais rejette la déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    OpenAFile.cpp(4): error C3145: 'objOpenAFile' : une variable globale ou statique ne peut pas avoir de type managé 'Test6::OpenAFile'
              impossible de déclarer une variable globale ou statique, ou un membre d'un type natif faisant référence à des objets du tas gc
    OpenAFile.cpp(4): error C2039: '{dtor}' : n'est pas membre de 'System::IDisposable'
              c:\program files\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : voir la déclaration de 'System::IDisposable'
    comment faire pour déclarer un objet sur une classe et surtout comment faire pour qu'il soit bien initialisé. ce sera

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    je ne comprends pas ce que tu essayes de faire.
    une variable globale ou statique ne peut pas avoir de type managé
    http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Bonjour
    J'ai besoin d'avoir une variable qui adresse la classe. d'habitude je code:
    CestLaClasse objLaClasse;
    Visual Studio accepte bine mon objet objLaClasse et son usage
    mais il refuse la déclaration
    si je savais comment déclarer l'objet ce serait

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Je ne pense pas qu'il s'agisse d'un problème de visual, mais un souci de managé.
    Je ne connais pas le managé.
    Mais l'erreur est très claire : tu déclares ta variables dans un scope où c'est interdit.

    La 2° erreur semble indiquer que ta classe doit dériver de IDisposable.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut J'ai changé la déclaration pour la mettre en managé, mais....
    ca donne cela
    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
     
                    //dans le fichier d'en tête
                    public ref class OpenAFile : public System::Windows::Forms::Form
    	{
    	public: 
    		Form^ form1;
    		Test6::OpenAFile^ objOpenAFile;
     
                    // dans le fichier de code
                    void OpenAFile(void)
    		{
    			Test6::OpenAFile::objOpenAFile = this;
    			Test6::OpenAFile::objOpenAFile.InitializeComponent();
    			//
    			//TODO: ajoutez ici le code du constructeur
    		}
    et à la compilation
    1>OpenAFile.cpp(3): error C2355: 'this'*: ne peut être référencé qu'à l'intérieur de fonctions membres non static
    OpenAFile.cpp(4): error C2228: la partie gauche de '.InitializeComponent' doit avoir un class/struct/union

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Ta classe s'apelle OpenAFile ?
    Et tu veux y mettre une fonction void OpenAFile ?!
    Une fonction qui prend le nom de la classe est un constructeur, et il ne retourne rien, et pas void.

    Pourquoi avoir un membre qui est un pointeur sur this ?! puisque tu as déjà this...

    C'est quoi test6 ? un namespace ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Article] Déploiement Web avec Visual Studio 2010
    Par Nicolas Esprit dans le forum Visual Studio
    Réponses: 23
    Dernier message: 15/11/2013, 10h47
  2. Réponses: 6
    Dernier message: 17/08/2010, 14h19
  3. Silverlight 3 et 4 avec Visual studio 2010
    Par miche19000 dans le forum Silverlight
    Réponses: 3
    Dernier message: 06/07/2010, 17h12

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