web-dev-qa-db-fra.com

Visual Studio 2017 - Impossible de trouver les formulaires Windows Visual C ++

Donc, je suis dans une situation délicate - je voulais créer une application Windows Form à l'aide de Visual Studio, mais je ne trouve aucun endroit pour créer un modèle de formulaire Windows Visual C++. J'ai même essayé de réinstaller Visual C++, d'ajouter d'autres bibliothèques et de rechercher des réponses en ligne - aucun résultat.

Je peux bien sûr créer de nouveaux Winforms en C #:

enter image description here

Mais pas en C++:

enter image description here

De plus, tous les modules possibles dans Visual Studio Update ont été vérifiés:

enter image description here

J'ai même essayé d'ajouter un modèle à partir de la liste en ligne:

enter image description here

Que devrais-je faire ensuite? J'utilise Visual Studio 2017 Community Edition.

9
Ch3shire

Ok, j'ai trouvé un moyen de créer des formulaires Windows dans Visual Studio 2017.

  1. Créer un nouveau projet vide CLR:

enter image description here

  1. Ajoutez un fichier .cpp pour la fonction principale.

  2. Dans le projet, ajoutez un nouvel élément depuis l'interface utilisateur -> Windows Forms:

enter image description here

(Si nous n'avons pas ajouté de boucle principale avant que l'erreur ne se produise)

  1. Maintenant, nous pouvons ajouter de nouveaux éléments à former à partir de la boîte à outils à gauche (j'ai passé un temps mesurable à chercher cela).

enter image description here

  1. Pour exécuter l'application, nous devons déclarer ceci au lieu de la fonction principale:

enter image description here

Nous devons également indiquer à Visual Studio que nous créons une application Windows au lieu d'une application console:

enter image description here

12
Ch3shire

La prise en charge du concepteur WinForms pour C++/CLI était supprimée il y a longtemps dans VS 2012. MS suggère d'utiliser C # pour votre code WinForms, et n'utilisez C++/CLI que si vous devez interagir avec du code natif.

Et si vous finissez par utiliser C++/CLI pour l'interopérabilité, gardez cette couche aussi petite que possible. C'est un citoyen de seconde classe dans le monde .NET et n'est même pas mentionné dans Microsoft article récent sur leur stratégie linguistique.

4
Mark Waterman