Projet windows forms / #include ??

Signaler
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
Bonjour,

je developpe une application pour transférer des données via port série. J'ai une classe Communication qui regroupe les commandes dont j'ai besoin, et je veux l'utiliser dans un projet Windows Forms.

J'ai 2 projets :

* Communication ( 3 fichiers : ParamSerie.h - Communication.h - Communication.cpp) dans le dossier :
Bureau\transfertDonneesSerie\Communication

* transfertDonneesSeries ( les fichiers du projet windows forms ) dans le dossier :
Bureau\transfertDonneesSerie\transfertDonneesSerie

dans le fichier "stdafx.h" du projet windows forms j'ai rajouté : #include "..\Communication\Communication.h"

Quand je compile mon projet windows forms, j'ai des erreurs "symbole externe non résolu"... J'ai essayé de mettre "..\\Communication\\Communication.h" ou "Communication.h" à la place de "..\Communication\Communication.h", ou alors d'y mettre dans mon fichier Form1.h mais ça ne fait rien...

Merci d'avance

A+

4 réponses

Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

Apparament il trouve mon fichier "Communication.h" puisque quand je met nimporte quoi, il me dit qu'il trouve pas le fichier...

Merci, A+
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

Un peu de code.

Mon fichier Communication.h :

#ifndef COMMUNICATION_H

#define COMMUNICATION_H

#ifdef _DLL

#ifndef _AFXDLL

#define _AFXDLL

#endif

#endif

#include <stdio.h>

#include <string.h>

#include

#include <math.h>

#include

#include <fstream>

#include <sstream>

#include <vector>

using namespace std;

#include "..\ParamSerie.h"

class Communication

{

    public :

        Communication();

        ~Communication();

        vector<LPBYTE> * lesPorts;

        void detecterPorts();

        ParamSerie * param;

        int ouvrir(ParamSerie * config); // Permet d'ouvrir la communication

        int fermer(ParamSerie * config); // Permet de fermer la communication

        int envoyer(ParamSerie * config, const void * telBuffer, int telleTailleBuffer);   // Permet d'envoyer des octets sur la liaison série

        char* recevoir(ParamSerie * config, int * telCodeErreur);   // Permet de recevoir des octets sur le liaison série

        int configurer(ParamSerie * config);  // Permet de configurer la communication

        int charger(ParamSerie * config, char * telCheminFichier, vector * tellesErreurs); // Permet de charger une configuration depuis un fichier

        int sauver(ParamSerie * config, char * telCheminFichier);     // Permet de sauver une configuration dans un fichier  

};

#endif

Constructeur dans Form1.h :

Form1(void)
        {
            InitializeComponent();
            //
            //TODO : ajoutez ici le code du constructeur
            //
           
            com = new Communication();
           
            // on charge la configuration
            vector lesCodesErreur;
            int leRetour = com->charger(com->param,CHEMIN_CONFIGCOM,&lesCodesErreur);

            if(com->lesPorts == NULL || com->lesPorts->size()==0)
            {
                System::Windows::Forms::MessageBox::Show("Aucun port série","Erreur port",MessageBoxButtons::OK,MessageBoxIcon::Error);
                return;
            }
            else
                for(unsigned int i=0; i<com->lesPorts->size(); i++)
                {
                //    System::String^ portAAjouter = gcnew ;
                    CBoxPorts->Items->Add(gcnew String((char*)(*com->lesPorts)[i]));
                }

            String^ nomPortStr = gcnew String(com->param->nomPort);
            int indexPort = CBoxPorts->FindStringExact(nomPortStr,0);
            delete nomPortStr;
            if( indexPort==CB_ERR )
            {
                CBoxPorts->SelectedIndex = 0;
                CString portSelectionne = CBoxPorts->SelectedItem->ToString();
                com->param->changerPort((char*)(LPCTSTR)portSelectionne);
            }
            else
                CBoxPorts->SelectedIndex = indexPort;
        }// Form1

A+
Messages postés
58
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
21 juin 2006

Il me semble que j'avai eu le même problème mais la j'ai pas visual sous la mais pour vérifier.

Le projet communication est bien compilé? (y a des .obj?)

As tu indiqué (dans la partie input) au linker dans ton projet windowsForm le chemin d'accès au fichiers .obj de ton autre projet?
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

Salut,

j'ai résolu le problème enter temps... En fait il faut faire 1 seul projet avec tous les fichiers. En faisant 2 projets, erreur à la compilation -> il demande une fonction "main" pour le projet "Communication".

Merci quand même

A+