none
Console.WriteLine pas de sortie RRS feed

  • Question

  • Bonjour,

    Zut de zut, j'utilise VS 2022 17.4.2 pour une application de bureau en C# sous .NET 7.

    L'instruction Console.WriteLine("Bonjour"); ne fournit aucune sortie sur l'une ou l'autre fenêtre "Sortie" ou Exécution".

    J'ai vérifié que le programme passait bien sur cette instruction.

    J'ai vérifié aussi dans les option de Debug que le paramètre "Rediriger tout le texte de la fenêtre Sortie vers la fenêtre Exécution" était coché (j'ai également fait l'essai en le décochant). Rien ne s'affcihe !

    Quelqu'un a une idée ? C'est ma première appli sur .NET 7

    Merci


    Alain

    samedi 3 décembre 2022 15:35

Toutes les réponses

  • Bonjour Alain,

    Pourriez-vous publier une plus grande partie du code ? Si la méthode main() ne contient que cet appel Console.WriteLine("Bonjour"); , avez-vous ajouté un appel de Console.ReadKey() ou Console.ReadLine() pour maintenir la fenêtre ouverte ?

    Cordialement,
    Dimitar
    samedi 3 décembre 2022 22:04
    Modérateur
  • Bonsoir Dimitar,

    Merci de votre réponse.

    Il ne s'agit pas d'une application console mais d'une application Windows Form.

    Voici le code tout simple :

    using System;
    using System.Drawing;
    using Microsoft.Win32;
    
    namespace ColorToBlackAndWhite
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
                Console.WriteLine("Bonjour.");
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                /// Ouverture d'une image
                OpenFileDialog Dlg = new()
                {
                    Title = "Ouvrir une image",
                    Multiselect = false,
                    Filter = 
                    " (jpg, gif, bmp, tif)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif|"
                    + " JPG (*.jpg/jpeg)|*.jpg;*.jpeg|"
                    + " gif (*.gif)|*.gif|"
                    + " bmp (*.bmp)|*.bmp"
                };
    
                if (Dlg.ShowDialog() == DialogResult.OK)
                {
                    // Afficher l'image sélectionnée
                    Bitmap img = new Bitmap(Dlg.FileName);
                    pictureBox1.Image= img;
    
                    // Afficher sa transformation en niveaux de gris
                    pictureBox2.Image = TransformeInGray(img);
                }
            }
    
    
            #region Transformeurs
    
            /// <summary>
            /// Transformer l'image JPG en niveau de gris
            /// </summary>
            /// <param name="img">Bitmap source</param>
            /// <returns>Bitmap niveau de gris</returns>
            /// <remark> On utilise le code classique :
            /// Rouge * 0.30
            ///  Vert * 0.59
            ///  Bleu * 0.11
            /// </remark>
            private Bitmap TransformeInGray(Bitmap img)
            {
                // Créer la Bitmap Noir et Blanc
                Rectangle rec = new Rectangle(0, 0, img.Width, img.Height);
                System.Drawing.Imaging.PixelFormat format = img.PixelFormat;
                Bitmap NoirEtBlanc = img.Clone(rec, format);
    
                // Convertir la Bitmap couleur en Noir et Blanc Pixel par Pixel
                for (int i = 0; i < img.Width; i++)
                    for (int j = 0; j < img.Height; j++)
                    {
                        Color pixelColor = img.GetPixel(i, j);
    
                        int a = pixelColor.A;
                        int b = pixelColor.B;
                        int r = pixelColor.R;
                        int g = pixelColor.G;
                        int Moy = (r + g + b) / 3;        // not used
    
                        int gray = (int)((r * .3) + (g * .59) + (b * .11));
                        int alpha = a < 125 ? 0 : 255;
    
                        Color pixelGray = Color.FromArgb(alpha, gray, gray, gray);
                        NoirEtBlanc.SetPixel(i, j, pixelGray);
                    }
    
                return NoirEtBlanc;
            }
    
            #endregion
    
    
        }
    }

    En fait il y a d'autres lieux où le texte n'apparait pas. Par exemple sur action de la souris sur les " pictureBox 1 ou 2, dont le code n'est pas inclus ici.

    Il s'agit peut-être d'un paramètre de VS par défaut...

    Cordialement


    Alain

    samedi 3 décembre 2022 22:48
  • Normalement, Debug.WriteLine devrait marcher (fenêtre "Output")
    lundi 5 décembre 2022 09:35
  • Oui Castorix31, Debug.WriteLine marche.

    Mais pourquoi donc Console.WriteLine que j'utilise depuis des années, ne fonctionne plus sur ce type de projet ?

    Je vois cela comme une régression de Visual Studio.

    Et que penser de son soi-disant AI qui ne dis rien et ne propose pas de solution ?

    Merci de vos suggestions.

    Cordialement


    Alain

    lundi 5 décembre 2022 10:00