Form.visible ... error

Signaler
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013
-
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
-
Bonjour,

Je suis débutant en C++ et je rencontre le problème suivant :
J'ai un source existant en C++ et je veux rajouter une form pour saisir des données.
J'ai donc créer une form avec visual c++ 2008 express et quand je veux rajouter cette form avec le code suivant :

MyForm.visible=true;

J'ai l'erreur de compilation suivante :

2>.\MonProg.cpp(533) : error C2065: 'MyForm' : identificateur non déclaré
2>.\MonProg.cpp(533) : error C2228: la partie gauche de '.visible' doit avoir un class/struct/union
2> le type est ''unknown-type''


Merci d'avance pour votre aide,

Bernard

11 réponses

Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
1
Essaie avec MyForm->visible=true.
Pour l'identifiant non déclaré, es-tu certain d'avoir déclaré correctement MyForm ?
Mon_type_de_form *MyForm=new Mon_type_de_form;
Naturellement, si tu as des paramètres sans valeur par défaut dans ton constructeur, il faut les mettre...
J'espère avoir répondu à tes questions...
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013

Merci pour ta réponse,
Je viens d'essayer, mais j'ai toujours la meme erreur ! (dur dur de débuter !)
Que représente Mon_type_de_form *MyForm=new Mon_type_de_form; ?

Merci d'avance
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
1
Tu crées une instance de Mon_type_de_form. Je ne sais pas comment tu l'as appelé dans VC++... Si ton type est MyForm (ce dont j'ai bien l'impression):
MyForm* MaFenetre=new MyForm;
J'ai oublié de préciser que quand tu n'as plus besoin de ta form, tu libères la mémoire (on travaille avec un pointeur):
delete MaFenetre;
Si tu as d'autres questions, ne te gênes pas !
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013

Je dois etre à coté de la plaque !
j'ai essayé MaFenetre->visible=true; et MyForm->visible=true;

Mais j'ai toujours le même problème !


MyForm* MaFenetre=new MyForm;
MaFenetre->visible=true;
MyForm->visible=true;

2>.\MonProg.cpp(532) : error C2065: MyForm: identificateur non déclaré
2>.\MonProg.cpp(532) : error C2065: 'MaFenetre' : identificateur non déclaré
2>.\MonProg.cpp(532) : error C2061: erreur de syntaxe : identificateur MyForm
2>.\MonProg.cpp(533) : error C2065: 'MaFenetre' : identificateur non déclaré
2>.\MonProg.cpp(533) : error C2227: la partie gauche de '->visible' doit pointer vers un type class/struct/union/générique
2> le type est ''unknown-type''
2>.\MonProg.cpp(534) : error C2065: MyForm: identificateur non déclaré
2>.\MonProg.cpp(534) : error C2227: la partie gauche de '->visible' doit pointer vers un type class/struct/union/générique
2> le type est ''unknown-type''
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
1
Tu n'aurais pas oublié d'inclure ton fichier .hpp ou .h ?
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013

Je te remercie pour ta patience !


J'avais oublié de mettre :
#include "MyForm.h"
Je l'ai rajouté ... et ç'est la cata complète :
================================================================
#include "stdafx.h"
#include "MyForm.h"
#include "sha/sha.h"
#import "C:\\Program Files\\Common Files\\Research In Motion\\USB Drivers\\BbDevMgr.exe" no_namespace named_guids
#include "BBDevMgr_errors.h"
#include <conio.h>
#include <crtdbg.h>


2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonPro\MyForm.h(3) : error C2871: 'System' : un espace de noms avec ce nom n'existe pas
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(4) : error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(4) : error C2871: 'ComponentModel' : un espace de noms avec ce nom n'existe pas
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(5) : error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(5) : error C2871: 'Collections' : un espace de noms avec ce nom n'existe pas
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(6) : error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(6) : error C2871: 'Forms' : un espace de noms avec ce nom n'existe pas
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(7) : error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(7) : error C2871: 'Data' : un espace de noms avec ce nom n'existe pas
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(8) : error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(8) : error C2871: 'Drawing' : un espace de noms avec ce nom n'existe pas
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(22) : error C2059: erreur de syntaxe : 'public'
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(22) : error C2059: erreur de syntaxe : 'public'
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(22) : error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(23) : error C2143: erreur de syntaxe : absence de ';' avant '{'
2>c:\program files\research in motion\blackberry jde 5.0.0\samples\MonProg\MonProg\MyForm.h(23) : error C2447: '{' : en-tête de fonction manquant (liste formelle à l'ancien format ?)
2>.\MonProg.cpp(438) : error C2365: 'MonProg' : redéfinition ; la précédente définition était 'espace de noms'
2>.\MonProg.cpp(603) : error C2882: 'MonProg' : utilisation non conforme d'un identificateur d'espace de noms dans l'expression
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013

Voila le contenu du fichier MyForm.h :

#pragma once

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;


namespace MonProg {

/// <summary>
/// Description résumée de MyForm
///
/// AVERTISSEMENT : si vous modifiez le nom de cette classe, vous devrez modifier la
/// propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
/// pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
/// les concepteurs ne pourront pas interagir correctement avec les ressources
/// localisées associées à ce formulaire.
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
InitializeComponent();
//
//TODO : ajoutez ici le code du constructeur
//
}

protected:
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
~MyForm()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ Envoyer;
private: System::Windows::Forms::TextBox^ textBox1;
protected:

protected:

private:
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
void InitializeComponent(void)
{
this->Envoyer = (gcnew System::Windows::Forms::Button());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// Envoyer
//
this->Envoyer->Location = System::Drawing::Point(73, 135);
this->Envoyer->Name = L"Envoyer";
this->Envoyer->Size = System::Drawing::Size(224, 49);
this->Envoyer->TabIndex = 0;
this->Envoyer->Text = L"Envoyer";
this->Envoyer->UseVisualStyleBackColor = true;
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(61, 34);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(313, 20);
this->textBox1->TabIndex = 1;
//
// MyForm
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(413, 288);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->Envoyer);
this->Name = L"MyForm";
this->Text = L"MyForm";
this->ResumeLayout(false);
this->PerformLayout();

}
#pragma endregion
};
}
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
1
Tu compiles avec quoi ? VC++ ?
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013

Microsoft Visual C++ 2008 Express Edition
Messages postés
40
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2013

Pour expliquer un peu plus ce que je veux faire :

Je suis parti d'un programme d'exemple BlackBerry qui communique avec mon tel portable via le port USB.

La communication marche très bien, mais mmon but est d'ajouter une form pour saisir les données à transmettre au tel
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
1
Je n'ai pas regardé le code en profondeur, mais après ton include, ça devrait fonctionner. Donne-moi ton mail en PV, je te répondrai (peut-être plus aujourd'hui, mais qui sait...), et je te donnerai mon mail pour que tu puisses m'envoyer ton code.
Exar.