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# Discussion :

Créer un assemblage .NET [Débutant]


Sujet :

C#

  1. #1
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut Créer un assemblage .NET
    Bonjour,

    J'ai créer une application avec Visual Studio.
    Je souhaite compiler mon projet pour créer un assembly .NET

    Comment faire ?
    Dois-je créer une nouvelle application?
    Si oui avec qu'elles sont les options que je dois prendre à la création du projet ?

    Merci.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu veux créer un assemblage de processus ? ou un assemblage de bibliothèque ?

    En général, on confond les deux, s'il s'agit d'une bibliothèque, il faut choisir ce type de projet.
    Sinon, il faut le modifier dans les propriétés du projet

  3. #3
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Je souhaite faire une bibliothèque.

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Bonjour,

    comme le disait Nico-pyright, il faut dans ce cas créer un projet de type "Bilbiothèque de classes".

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    comme le disait Nico-pyright, il faut dans ce cas créer un projet de type "Bilbiothèque de classes".
    Ou si le projet est déjà créé mais que tu t'étais trompé de type de projet alors tu peux le modifier en faisant un clic droit sur le projet puis Propriétés. Ensuite dans l'onglet Application tu choisis Librairie de classes dans Type de sortie

  6. #6
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Voilà j'ai fait un build du projet et j'obtient bien ma dll.

    Le problème est que quand je veux l'utiliser il ne me trouve aucune méthode ???

    Est-ce que j'ai mal déclaré mes méthodes ?

    Voici mon code :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Drawing;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;
    using Emgu.CV;
    using Emgu.CV.Structure;
    using Emgu.CV.UI;
     
    namespace FaceDetection
    {
        static class Program
        {
            private
                static int XFace;
                static int YFace;
                static int HeightFace;
                static int WidthFace;
                static string FacePicture;
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
                [STAThread]
     
            static void init()
            {
                if (!IsPlaformCompatable()) return;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
            }
     
            static void Run()
            {
     
                Image<Bgr, Byte> image = new Image<Bgr, byte>(FacePicture); //Read the files as an 8-bit Bgr image  
                Image<Gray, Byte> gray = image.Convert<Gray, Byte>(); //Convert it to Grayscale
     
                Stopwatch watch = Stopwatch.StartNew();
                //normalizes brightness and increases contrast of the image
                gray._EqualizeHist();
     
                //Read the HaarCascade objects
                HaarCascade face = new HaarCascade("haarcascade_frontalface_alt_tree.xml");
                HaarCascade eye = new HaarCascade("haarcascade_eye.xml");
     
                //Detect the faces  from the gray scale image and store the locations as rectangle
                //The first dimensional is the channel
                //The second dimension is the index of the rectangle in the specific channel
                MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(
                   face,
                   1.1,
                   10,
                   Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
                   new Size(20, 20));
     
                foreach (MCvAvgComp f in facesDetected[0])
                {
                    //draw the face detected in the 0th (gray) channel with blue color
                    image.Draw(f.rect, new Bgr(Color.Blue), 2);
     
                    XFace = f.rect.Location.X;
                    YFace = f.rect.Location.Y;
                    HeightFace = f.rect.Size.Height;
                    WidthFace = f.rect.Size.Width;
     
                    //f.Rect.Location.Y
     
                    //Set the region of interest on the faces
                    gray.ROI = f.rect;
                    MCvAvgComp[][] eyesDetected = gray.DetectHaarCascade(
                       eye,
                       1.1,
                       10,
                       Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
                       new Size(20, 20));
                    gray.ROI = Rectangle.Empty;
     
                    foreach (MCvAvgComp e in eyesDetected[0])
                    {
                        Rectangle eyeRect = e.rect;
                        eyeRect.Offset(f.rect.X, f.rect.Y);
                        image.Draw(eyeRect, new Bgr(Color.Red), 2);
                    }
                }
     
                watch.Stop();
                //display the image 
                ImageViewer.Show(image, String.Format("Perform face and eye detection in {0} milliseconds", watch.ElapsedMilliseconds));
            }
     
            /// <summary>
            /// Check if both the managed and unmanaged code are compiled for the same architecture
            /// </summary>
            /// <returns>Returns true if both the managed and unmanaged code are compiled for the same architecture</returns>
            private static bool IsPlaformCompatable()
            {
                int clrBitness = Marshal.SizeOf(typeof(IntPtr)) * 8;
                if (clrBitness != CvInvoke.UnmanagedCodeBitness)
                {
                    MessageBox.Show(String.Format("Platform mismatched: CLR is {0} bit, C++ code is {1} bit."
                       + " Please consider recompiling the executable with the same platform target as C++ code.",
                       clrBitness, CvInvoke.UnmanagedCodeBitness));
                    return false;
                }
                return true;
            }
     
            public static int GetX()
            {
                return XFace;
            }
     
            public static int GetY()
            {
                return YFace;
            }
     
            public static int GetHeight()
            {
                return HeightFace;
            }
     
            public static int GetWidth()
            {
                return WidthFace;
            }
     
            public static void SetPicture(string ParamPicture)
            {
                FacePicture = ParamPicture;
            }
        }
    }
    Merci bien.

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Et tu veux l'utiliser ou et comment?

  8. #8
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Je veux l'utiliser avec un autre langage, Windev.

    J'ai l'habitude en Windev d'importer des DLL et d'utiliser leurs méthodes.

    Merci.

  9. #9
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    D'autres DLL C et C++ ou d'autres DLL .Net? Car il y a une différence fondamentale: les dll .Net doivent être utilisées dans un environnement managé.

  10. #10
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    J'utilise des DLL en C++ et C.

    Pour les DLL .NET je les importe dans mes projets.
    Ensuite dans l'arborescence de mes projets je vois ma DLL et les méthodes publiques que je peux utiliser.

    Là je cherche à faire une DLL .NET

    Merci

  11. #11
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Bonjour,

    Voici un screenshot de l'explorateur de projet dans Windev.
    On voit un assembly avec ses méthodes voir la pièce jointe.

    Merci
    Images attachées Images attachées  

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    La classe "Program" que tu as mise n'est pas publique.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Effectivement il manquait public.

    Je pensais qu'en C# les méthodes étaient plublic par défaut sans devoir rajouter "public" devant.

    Merci bien.

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par thierrybatlle Voir le message
    Je pensais qu'en C# les méthodes étaient plublic par défaut sans devoir rajouter "public" devant.
    D'une part, le problème n'était pas sur les méthodes mais sur la classe qui est par défaut "internal".

    Et pour les méthodes, non, tu ne le pensais pas, puisque tu en as mis certaines "public" et pas d'autres.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut D'autres précisions
    Bonjour Je sais que cette discutions est résolue mais j'aimerais savoir comment est ce que le problème pour rendre les méthodes de la classe visible à été résolu avec windev.

  16. #16
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    En mettant la classe publique.
    Et évidement les méthodes à utiliser aussi.
    On ne jouit bien que de ce qu’on partage.

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

Discussions similaires

  1. [WD12E] Utilisation Assemblage .NET d'ESRI
    Par hgoethe dans le forum WinDev
    Réponses: 7
    Dernier message: 07/12/2009, 11h45
  2. Assemblage .NET windev
    Par battit64 dans le forum WinDev
    Réponses: 4
    Dernier message: 01/12/2009, 14h19
  3. Créer une application .Net Web Online & Offline
    Par patozore dans le forum Débuter
    Réponses: 4
    Dernier message: 21/10/2009, 09h24
  4. Comment (ou peut on) créer une DLL .NET ?
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 4
    Dernier message: 02/04/2006, 15h54
  5. [D2005] Utiliser un assemblage .Net
    Par giloutho dans le forum Delphi .NET
    Réponses: 7
    Dernier message: 27/07/2005, 00h31

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