Projet windows forms / #include ??

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 5 juin 2006 à 10:37
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 6 juin 2006 à 18:27
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

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
5 juin 2006 à 10:45
Apparament il trouve mon fichier "Communication.h" puisque quand je met nimporte quoi, il me dit qu'il trouve pas le fichier...

Merci, A+
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
5 juin 2006 à 11:04
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+
0
cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006
6 juin 2006 à 12:57
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?
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
6 juin 2006 à 18:27
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+
0
Rejoignez-nous