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 :

[C++/CLI]Problème rencontré lors passage VC++ 2003->VC++ 2k5


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [C++/CLI]Problème rencontré lors passage VC++ 2003->VC++ 2k5
    Bonjour,

    J'ai développé une application Windows forms sur Visual C++ 2003 .NET. J'ai recompilé mon projet sur la version 2005, puis j'ai lancé l'application. Le problème est que lorsque je clique sur mon bouton qui ouvre normalement une fenetre de dialogue pour choisir un fichier dans un l'explorateur, j'ai un message d'erreur de visual.

    [img=http://img388.imageshack.us/img388/95/errorvc9ms.th.jpg]
    et l'exécution du code s'arrete sur le "if":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void OutilsSpectra::Fiche_FT_to_FC::buttonOpenFile_Click(System::Object*  sender, System::EventArgs*  e)
    {
        this->openFileDialog1 = new OpenFileDialog();
     
    	this->openFileDialog1->InitialDirectory = "c:\\" ;
     
    	this->openFileDialog1->Filter = "Thales Files (*.ft)|*.ft";
        this->openFileDialog1->Title = "Select a Thales File";
     
        if (this->openFileDialog1->ShowDialog() == DialogResult::OK)
        {
    		this->textBoxFileName->Text = this->openFileDialog1->FileName;
    	} 
    }
    Sous VC++ .NET 2003 je n'avais pas ce problème, j'ai essayé d'exécuter en Debug et Release mais ca ne change rien.
    Une idée?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Comme l'indique le message d'erreur, le main doit posséder l'attribut [STAThreadAttribute] comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    {
    	// Enabling Windows XP visual effects before any controls are created
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false); 
     
    	// Create the main window and run it
    	Application::Run(gcnew Form1());
    	return 0;
    }
    VS2003 n'implémente pas exactement la même fonction main.
    On ne peut pas faire boire un âne qui n'a pas soif.

  3. #3
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ne serais-ce donc pas plutôt :
    [STAThread]
    int main(array<System::String ^> ^args)
    {
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    C'est pareil. Les attributes peuvent omettre le suffixe Attribute pour plus de lisibilité.
    J'ai simplement copié le code généré par Visual C++ 2005.
    Personne ne l'écrit comme ça à la main
    On ne peut pas faire boire un âne qui n'a pas soif.

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par NicolasG
    C'est pareil. Les attributes peuvent omettre le suffixe Attribute pour plus de lisibilité.
    J'ai simplement copié le code généré par Visual C++ 2005.
    Personne ne l'écrit comme ça à la main
    ok doc
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Effectivement, avec l'ajout de [STAThreadAttribute] dans le main, je n'ai plus le problème cité plus haut.
    Juste une petite remarque, cela fait juste un moi que je me suis mis sur Dotnet, et j'avoue que ce n'est pas facile de développer dessus. Rien qu'un changement de version de l'ide, suffit à ne plus faire fonctionner une application. Enfin, au vue du résultat de mon passage entre VC2003 -> VC2005, je pense que je ferais mieux de rester sur la 2003 pour éviter tout problème.

    En tout cas, merci à vous.
    ++

    EDIT: je confirme que [STAThread] fonctionne aussi

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Citation Envoyé par Tchaka
    au vue du résultat de mon passage entre VC2003 -> VC2005, je pense que je ferais mieux de rester sur la 2003 pour éviter tout problème.
    Je pense au contraire qu'il vaut mieux migrer complètement et utiliser la nouvelle syntaxe. C'est du travail mais le résultat est plus clair.
    On ne peut pas faire boire un âne qui n'a pas soif.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Tu as probablement raison, mais mon application est terminée à 90% et je n'ai malheureusement pas le temps de me mettre à ce genre de travail (j'ai d'autres projets plus urgent à faire). Néanmois je tacherais de choisir la version 2005 dans mes prochains travaux.

    ++

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

Discussions similaires

  1. [OpenLS] Problèmes rencontrés lors des appels (403)
    Par treivse dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 26/03/2015, 16h22
  2. Réponses: 1
    Dernier message: 22/07/2011, 13h09
  3. PB dans SQL lors passage Access 97 à 2003
    Par blandinais dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/12/2008, 11h45
  4. Réponses: 1
    Dernier message: 13/08/2008, 17h06
  5. [VBA-2007]Problèmes affichage Shapes - Passage 2003 -> 2007
    Par Kitty-cat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2007, 13h52

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