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 :

un problème de Reflection.


Sujet :

C#

  1. #21
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par mcferson Voir le message
    Pour le moment, je ne peux rien faire tant que je n'arrive pas à Générer cette interface (voir mon message précédent).
    Enlève le modificateur public sur les membres de l'interface : tous les membres d'une interface sont implicitement publics

  2. #22
    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
    Les membres d'une interface ont le même niveau d'expositon que l'interface, qui est soit public, soit internal (dans ton cas c'est public).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public interface MyInterface
    {
    string GetId(); // GetID est 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

  3. #23
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Ok, merci, c'est corrigé.

    Donc,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyInterface myInstance = (MyInterface) myAssembly.CreateInstance("MonType");
    je dois l'écrire, pour mon cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DllInterface dllInterface;//DllInterface, c'est la classe interface de mon assembly, donc.
    (DllInterface)assembly.CreateInstance("AVL_VT_SERIAL.Base");
    ?

  4. #24
    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 mcferson Voir le message
    Ok, merci, c'est corrigé.

    Donc,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyInterface myInstance = (MyInterface) myAssembly.CreateInstance("MonType");
    je dois l'écrire, pour mon cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DllInterface dllInterface;//DllInterface, c'est la classe interface de mon assembly, donc.
    (DllInterface)assembly.CreateInstance("AVL_VT_SERIAL.Base");
    ?
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DllInterface dllInterface = (DllInterface)assembly.CreateInstance("AVL_VT_SERIAL.Base");
    Bien entendu, tu as modifié AVL_VT_SERIAL pour implémenter cette interface ?

    Sinon, pourquoi "base" ?

    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

  5. #25
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    "Base", c'est la classe de ma dll AVL_VT_SERIAL.dll qui contient les méthodes de... base, dont "GetId()" (et sa surcharge). pour comprendre le contexte, cette dll est plus ou moins un driver de communication avec une balise GPS. Ensuite, elle contiendra aussi des classes correspondantes aux versions de firmware de ces balises.

    Pour ce qui est de l'implémentation dans la dll, je l'ai bien référencée, mis en "using", mais au delà, je vois pas quoi mettre d'autre.

  6. #26
    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 mcferson Voir le message
    Pour ce qui est de l'implémentation dans la dll, je l'ai bien référencée, mis en "using", mais au delà, je vois pas quoi mettre d'autre.
    Là je pense qu'il faut commencer par lire un tutoriel sur la programmation de base en C# car sinon on va pas s'en sortir.

    Visiblement tu n'as pas implémenté l'interface dans la classe (dont le nom est accessoirement très très mal choisi, car "base" typiquement est le suffixe de nom de classe de base c'est à dire destinées à être héritées mais c'est un détail).

    Donc ça ne marchera pas.

    La classe DOIT IMPLEMENTER L'INTERFACE sinon tu ne pourras pas la caster vers cette interface.

    Ta déclaration d'en tête de classe doit donc être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public MyClass : MyInterface
    {
    // .... le code 
    }

    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

  7. #27
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    arg... ok, c'est fait.

  8. #28
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Voici le code principal corrigé :
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;
    using System.IO.Ports;
    using System.IO;
    using System.Text;
    using System.Linq;
    using System.Xml.Linq;
    using System.Reflection;
    using System.Management;
    using Microsoft.Win32;
    using System.Globalization;
    using DLLInterface;
     
    namespace TrakerCfgSoft
    {
        /// <summary>
        /// Description of MainForm.
        /// </summary>
        public partial class GPSForm : Form
        {
            //List<string> listofport=new List<string>();
            //List<string> listofdevice=new List<string>();
            SerialPort mySerialPort;
            XElement trackerlist=new XElement(new XElement ("trackers"));
            Assembly assembly;
            Type type;
            MethodInfo method;
            DllInterface dllInterface;
     
            public GPSForm()
            {
                InitializeComponent();
            }
     
            private void MainFormLoad(object sender, EventArgs e)
            {
                mySerialPort = new SerialPort();
            }
     
            private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                // Event for receiving data
                // Read the buffer to text box.
                this.Invoke(new EventHandler(DoUpdate));
            }
     
            private void DoUpdate(object s, EventArgs e)
            {
                //Then, the textbox always display new messages when they arrive.
                //txResponse.Text = txResponse.Text + mySerialPort.ReadExisting();
                txResponse.AppendText(mySerialPort.ReadExisting());
            }
     
            public void CreatePort(string port)
            {
                //paramètres de connexion
                mySerialPort.PortName = txPort.Text.ToUpper();
                mySerialPort.BaudRate = 57600;
                mySerialPort.Parity = Parity.None;
                mySerialPort.StopBits = StopBits.One;
                mySerialPort.DataBits = 8;
                mySerialPort.Handshake = Handshake.None;
                mySerialPort.DtrEnable = true;
                mySerialPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);//to get messages from the port.
            }
     
            public void SendCommand(string cmd)
            {
                // Button to send test data
                try
                {
                    string commandeaffiche = "===> " + txSend.Text + "\n";
                    txResponse.SelectionColor = Color.Firebrick;
                    txResponse.AppendText(commandeaffiche);
                    txResponse.SelectionColor = Color.Black;
     
                    string data = txSend.Text + (char)13; //where 13 is the <CR> ASCII code.
                    byte[] commande = Encoding.ASCII.GetBytes(data);
                    mySerialPort.Write(commande, 0, commande.Length);
                    //txResponse.Text = txResponse.Text + txSend.Text;                
                }
                catch (Exception sendex)
                {
                    MessageBox.Show(sendex.ToString());
                }
            }
     
            private void btSend_Click(object sender, EventArgs e)
            {
                SendCommand(txSend.Text);
            }
     
            void BtOpenClick(object sender, EventArgs e)
            {
                if (mySerialPort.IsOpen == false)
                {
                    CreatePort(txPort.Text);
                    mySerialPort.Open();
                    StatusLabel.Text = "Port Ouvert.";
                }
            }
     
            void BtCloseClick(object sender, EventArgs e)
            {
                //To close the connection
                mySerialPort.Close();
                StatusLabel.Text = "Port Fermé.";
            }
     
            private void portList_SelectedIndexChanged(object sender, EventArgs e)
            {
                //Send the selected item port(DeviceID from listofport) in the txPort textbox
                //
                //txPort.Text = (listofport[(portList.SelectedIndex)]).ToString();
                string port = (from element in trackerlist.Elements("port") where element.Attribute("ident").Value == (string)portList.SelectedItem select element.Attribute("port").Value).First().ToString();
                txPort.Text=port;
            }
     
            private void portList_Update(object sender, EventArgs e)
            {
                //empty the two lists
                //listofdevice.Clear();
                //listofport.Clear();
     
                //will scan the serialports to get DeviceID (ports COMx) and Name of the connected device
                try
                {
                    ManagementObjectSearcher searcher =
                        new ManagementObjectSearcher("root\\CIMV2",
                        "SELECT * FROM Win32_SerialPort");
     
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        //listofport.Add(Convert.ToString(queryObj["DeviceID"]));
                        //listofdevice.Add(Convert.ToString(queryObj["Name"]));
     
                        string port = Convert.ToString(queryObj["DeviceID"]);
                        string model = Convert.ToString(queryObj["Name"]);
                        txPort.Text=port;
                        CreatePort(port);
                        mySerialPort.Open();
                        GetDriver(model);
                        SendCommand(dllInterface.GetId());
                        string ident = dllInterface.GetId(mySerialPort.ReadExisting());
                        mySerialPort.Close();
                        //btSend_Click
                        try
                        {
                            trackerlist.Add(
                                (new XElement("tracker",
                                    new XAttribute("model", model),
                                    new XAttribute("port", Convert.ToString(queryObj["DeviceID"])),
                                    new XAttribute("ident", ident))));
                        }
                        catch
                        {
                            trackerlist.Add(
                                (new XElement("tracker",
                                    new XAttribute("model", model),
                                    new XAttribute("port", Convert.ToString(queryObj["DeviceID"])),
                                    new XAttribute("ident", "Connexion non identifiable"))));
                        }
                    }
                }
                catch (ManagementException me)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + me.Message);
                }
     
                //refill the porList with the ports scan result
                portList.Items.Clear();
                //portList.Items.AddRange((string[])listofdevice.ToArray());
                var tracklist = (from element in trackerlist.Elements("ident") select trackerlist.Attribute("ident").Value).ToList();
                tracklist.ToList().ForEach(v => portList.Items.Add(v));
            }
     
            private void txSend_KeyPress(object sender, KeyPressEventArgs e)
            {
                //initiate btSend_Click event when press the Return or Enter keys
                if (e.KeyChar == (char)Keys.Return || e.KeyChar == (char)Keys.Enter)
                    btSend_Click(sender,e);
            }
     
            private void txResponse_TextChanged(object sender, EventArgs e)
            {
                //to scroll the text to last line
                txResponse.SelectionStart = txResponse.Text.Length;
                txResponse.ScrollToCaret();
                txResponse.Refresh();
            }
     
            public void GetDriver(string model)
            {
                if (model.Contains("AVL VT-SERIAL"))
                {
                    dllInterface=(DllInterface)assembly.CreateInstance("AVL_VT_SERIAL.Base");
                    //assembly = Assembly.LoadFrom("AVL_VT_SERIAL.dll");
                    //else if (model.Contains("Port de communication"))
                    //    assembly = Assembly.LoadFrom("X8.dll");
                    //type = assembly.GetType("AVL_VT_SERIAL.Base");
                    method = type.GetMethod("GetId", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
                }
            }
     
            //public string GetId()
            //{            
     
            //    return;
            //}
        }
    }
    il y a une erreur au niveau de SendCommand(dllInterface.GetId()); dans la méthode update. dllInterface a une value null.

    EDIT : je reposte la classe basis corigée d'une dll, pour rappel
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using DLLInterface;
     
    namespace AVL_VT_SERIAL
    {
        public class Basis:DllInterface
        {
            public string GetId()
            {
                return "$wp+uncfg=0000,?";
            }
     
            public string GetId(string message)
            {
                char[] separator=new char[]{' ',',','=','+',':'};
                string[] decoupe = message.Split(separator);
                return decoupe[3];
            }
        }
    }

  9. #29
    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
    Ton code étant difficilement lisible (mélange d'accès aux données, d'ihm et de code métier dans la même classe !!!) , que retourne la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dllInterface=(DllInterface)assembly.CreateInstance("AVL_VT_SERIAL.Base"
    Si cette ligne ne fonctionne pas, pas besoin d'aller plus loin.

    tu préfixe le type par le nom d'assembly ? utilises-tu un namespace ayant le même nom que l'assembly pour la classe Base ?

    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

  10. #30
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    namespace de même nom, oui. ça vient de ça ?

    correction de "Base" en Basis" (bien sûr)

  11. #31
    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 mcferson Voir le message
    namespace de même nom, oui. ça vient de ça ?
    Non, simplement c'est curieux; le namespace correspond à une logique de regroupement, le nom de l'assembly est un nom physique de fichier; en général on ne mélange pas les deux.

    correction de "Base" en Basis" (bien sûr)
    Donc, retour à la question initiale : l'instanciation de "Basis" fonctionne-t-elle ? (dans le cas contraire, elle lève un exception il me semble).

    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

  12. #32
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    NullException non gérée, mais je l'ai au niveau de l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendCommand(dllInterface.GetId());
    qui pointe le GetId()

  13. #33
    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
    Bon, je pense que tu décourages les meileures volontés.

    Quand tu seras décidé à répondre aux questions, n'hésite pas à revenir.

    La question était pourtant claire et précise.

    Je réitére une dernière fois :

    Quand tu exécutes la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dllInterface=(DllInterface)assembly.CreateInstance("AVL_VT_SERIAL.Base");
    QUE SE PASSE-T-IL ????

    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

  14. #34
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    R.I.E.N ! sur CETTE ligne là.
    l'exception intervient là où je l'ai dit.
    Mais maintenant, ça n'y passe même plus. et ma liste reste vide.

  15. #35
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Bon avant de pouvoir répondre, il faut que je puisse contourner mon instruction qui gêne quand je boucle sur les port qui ne vont pas.
    je reviens...

  16. #36
    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
    Ca signifie que la description de ton type dans l'appel à CreateInstance est invalide. (ou alors que tu ne passes pas desus).
    Pas la peine de chercher plus loin.

    Tu as mis un breakpoint pour t'en assurer ?

    Ce qui est anormal cest que tu ne fasse pas de test au retour de l'appel de méthode CreateInstance et que tu poursuives l'exécution dans ce cas.

    Tu n'as pas un problème de case sensitivity ? (a priori non, si j'en juge par le code de la classe).

    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

  17. #37
    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 mcferson Voir le message
    Bon avant de pouvoir répondre, il faut que je puisse contourner mon instruction qui gêne quand je boucle sur les port qui ne vont pas.
    je reviens...

    Mais isole les lignes de création de la classe dans un programme à part popur tester, voyons !!!!!!

    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

  18. #38
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Voilà, j'y arrive.
    Donc, l'exception générée est :
    L'exception NullReferenceException n'a pas été gérée - La référence d'objet n'est pas définie à une instance d'un objet.
    Et excusez moi. Le code commence à être un vrai cirque et il me reste deux semaine pour faire l'appli finale (celle là n'est qu'un test de fonctionnalités).

    assembly null System.Reflection.Assembly
    dllInterface null DLLInterface.DllInterface
    model "AVL VT-SERIAL (COM4)" string
    this {TrakerCfgSoft.GPSForm, Text: Traceur GPS : 0} TrakerCfgSoft.GPSForm

  19. #39
    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 mcferson Voir le message
    Voilà, j'y arrive.
    Donc, l'exception générée est : L'exception NullReferenceException n'a pas été gérée - La référence d'objet n'est pas définie à une instance d'un objet.
    cf. question supra.

    Et excusez moi. Le code commence à être un vrai cirque et il me reste deux semaine pour faire l'appli finale (celle là n'est qu'un test de fonctionnalités).
    Test les fonctionnalités de manière isolée.

    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

  20. #40
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    je viens d'ajouter les info de l'espion, au niveau de l'erreur. assembly et dllInterface à null, ça me plait pas. Je me trompe ?

    Les autre fonctionnalités marchent bien. elles ont déjà été utilisées.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/01/2009, 14h30
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 15h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 12h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 22h11

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