begin process at 2012 05 29 06:19:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Erreurs de compilation pour passage de valeurs par une struct


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreurs de compilation pour passage de valeurs par une struct

dimanche 15 octobre 2006 à 06:33:39 | Erreurs de compilation pour passage de valeurs par une struct

develdelphi

Bonjour,

Voila apres un moment je reviens cette fois avec plus d'explications sur un code pour passer des valeurs.
Donc, j'ai un programme de gestion de systeme de detection et de camera.

Voila ayant ajoute a mon programme d'autres options (une deuxieme camera) j'ai du changer certaines choses notament le passage de donnees par l'intermediaire d'une struct (car sinon je devais me lancer dans des conversion de types au niveau des retours de types et ca devenait complique si j'ai d'autres passages etc..)
Maintenant j'ai un code plus propre pour passer mes valeurs, j'ai utilisé un struct pour renvoyer à la fois l'erreur (FSRteVal) et la camera correspondant (bool).

Mais avec struct j'ai quelques erreurs de compilations;
-C2146
-C4430
-C4183
-C2556

Remarque j'ai ces memes erreurs repetees une quinzaine de fois?

Et ces erreurs pointent en partie sur le prototype de ma fonction isProblemeStereo() au niveau du header comme ce qui suit:

/////////////////////////////////////////
....
float GetQuality(int iImage);
sNoprob isProblemeStereo();       // la que pointe les erreurs de compilation
bool isProblemeTraitement();
bool isProblemeAcquisition();
....

//////////////////////////////////


voici mon code pour ma struct:

///////////////////////////////////////
typedefstruct sNoprob
{
bool bster;
FSRetVal FStmpint;
int inut;
}sNoprob;

//////////////////////////////////////



Le retour de ma fonction IsProblem() a changé egalement:

////////////////////////////////////
sNoprob CMy99090Doc::isProblemeStereo()   

{
  
    sNoprob inter;
 inter.FStmpint = FS_SUCCESS;           
 
 if(m_pThreadStereo1->m_initstereostatus==FS_SUCCESS && m_pThreadStereo2->m_initstereostatus==FS_SUCCESS)  
  return inter;            
    if (m_pThreadStereo1->m_initstereostatus!=FS_SUCCESS || m_pThreadStereo2->m_initstereostatus!=FS_SUCCESS)
       
  if (m_pThreadStereo1)
        { if (m_pThreadStereo1->isProbleme())
             inter.bster = 0;
             inter.FStmpint = m_pThreadStereo1->m_initstereostatus ;
        }
  else if (m_pThreadStereo2) 
       { if (m_pThreadStereo2->isProbleme())
             inter.bster = 1;
              inter.FStmpint = m_pThreadStereo2->m_initstereostatus ;
        }
       
    return inter;
}

////////////////////////////////




Voici  ma fonction OntImer() (pour l'affichage des erreurs d'initialisations a l'initialisation): 


/////
.........
  if(m_Init.Get_Params_General_ModeProcess ()==PROCESS_SAS_AUTOMATIQUE)
  {
     if(uiSecurity& LEVEL_1)
   {  
    //CStereo m_bvercam;               
    sNoprob initstereostatus=pDoc->isProblemeStereo();  
     if(initstereostatus.FStmpint)    
      m_ListeStereo.ResetContent ();  
     else
      m_bPblStereo=false;
    if (initstereostatus.bster)
                 {switch(initstereostatus.FStmpint) 
      {

                  case FS_ERROR_LOW_MEMORY:  
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
          m_ListeStereo.AddString (strDatalist);
        break;

      case FS_ERROR_CANNOT_OPEN_FILE:  
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
        break;
   
                  case FS_ERROR_BAD_CONFIG_FORMAT:  

                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
break;

      case FS_ERROR_BAD_PARAMETER_IN_CONFIG_FILE:  
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_BAD_PARAMETER:  
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_CANNOT_CREATE_PROCESS:  
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_COMMUNICATION_LOST:  
                         
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
               break;

                  case FS_ERROR_DISK_FULL:  
                                m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
           break;

                  case FS_ERROR_CANNOT_EXECUTE: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_UNKNOWN:  
                        
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
           break;

                  case FS_ERROR_CAMERA_NOT_FOUND:  
                 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_NUMBER:  
            
          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 1  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;
           
      }
     }
      else
        {  
     switch(initstereostatus.FStmpint)

      {
                  case FS_ERROR_LOW_MEMORY: 

           m_bPblStereo=true;
        strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
        m_ListeStereo.AddString (strDatalist);
        break;

      case FS_ERROR_CANNOT_OPEN_FILE: 
                
                          m_bPblStereo=true;
        strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
        m_ListeStereo.AddString (strDatalist);
        break;
   
                  case FS_ERROR_BAD_CONFIG_FORMAT: 
            m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

      case FS_ERROR_BAD_PARAMETER_IN_CONFIG_FILE: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_BAD_PARAMETER: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_CANNOT_CREATE_PROCESS: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_COMMUNICATION_LOST: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_DISK_FULL: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_CANNOT_EXECUTE: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_UNKNOWN: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_CAMERA_NOT_FOUND: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;

                  case FS_ERROR_NUMBER: 
                          m_bPblStereo=true;
         strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);
         m_ListeStereo.AddString (strDatalist);
         break;
           
      }
      }
     if(pDoc->isIniteStereo())
     m_bStereo=true;
        else
     m_bStereo=false;
   }
   else
   {
    m_bPblStereo=false;
    m_bStereo=true;
   }

   if(pDoc->isProblemeModbus())
    m_bPblModbus=true;
   else
    m_bPblModbus=false;

   if(pDoc->isInitModbus())
    m_bModbus=true;
   else
    m_bModbus=false;
  } 
  UpdateData(false);

.........
}

///////////////////////////////////////////

Je pensais que l'erreur venait de %s dans l'instruction : strDatalist.Format ("Explication Stereo 2  %s", FSRetVal_Names[initstereostatus.FStmpint]);

mais  en remplaçant ca par ceci rien n'a changé   :  strDatalist.Format ( Explication Stereo 2  :  FS_ERROR_CAMERA_NOT_FOUND);


D'ou peut venir les erreurs ?

Dois-je faire un pointeur sur ma struct, et comment ?


Merci




dimanche 15 octobre 2006 à 11:45:58 | Re : Erreurs de compilation pour passage de valeurs par une struct

SnOOpss

2.3.2 Déclaration ou retour d’un entier par défaut :

La déclaration de variable ou de retour de fonction retournant un int par défaut n’est plus reconnue
par Visual 2005.
Exemple:
const MAX=1000; //equivalent à 'const int MAX'
static n; // equivalent a 'static int n;'
func(char * p); // int func(char *p);
Pour la fonction func le compilateur retournera:
c:\samples\samplemdi\samplemdiview.h(13) : error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int
c:\samples\samplemdi\samplemdiview.h(13) : warning C4183: 'func': missing return type;
assumed to be a member function returning 'int'
dimanche 15 octobre 2006 à 13:34:44 | Re : Erreurs de compilation pour passage de valeurs par une struct

SnOOpss

Je suis rearrivé a avoir ce probleme, rien a voir avec mon post precedent
essaye de mettre
typedef struct
{
....
}sNoprob

typedef struct en deux mots
dimanche 15 octobre 2006 à 20:37:37 | Re : Erreurs de compilation pour passage de valeurs par une struct

develdelphi


bonsoir,

il ne s'agit pas un probleme de syntaxe car j'ai bien declarer ma struct  correctement:

///////////////////////////////////////
typedef struct sNoprob
{
bool bster;
FSRetVal FStmpint;
int inut;
}sNoprob;

//////////////////////////////////////

Donc comme vous dites peut etre que Visual Studio 2005 ne reconnait pas
la déclaration de variable ou de retour de fonction retournant un int par défaut.

Mais alors que faire pour qu'il le connaisse?

Merci


dimanche 15 octobre 2006 à 22:04:59 | Re : Erreurs de compilation pour passage de valeurs par une struct

develdelphi



Je viens de recompiler ce meme programe sous Visual C++ 6 et j'ai egalement des
messages d'erreurs au niveau de struct sNoprob.

Serai-ce du au fait qu'en compilant sous Visual C++ 2005, VC++ 6 ne sache pas compiler correctement ou bien simplement qu' il s'agit d'erreurs de programmation de ma part ? Dois-je peut etre utiliser un pointeur sur ma struct comme ci-dessous?

sNoprob *inter = new SNoprob;
inter->FStmpint = FS_SUCCESS;


Merci



lundi 16 octobre 2006 à 07:02:22 | Re : Erreurs de compilation pour passage de valeurs par une struct

SnOOpss

J'ai aussi eu ce probleme mais je me souviens plus comment j'ai fait (sans passer par la desactivation de ce message) a tu été voir sur la msdn ?
http://msdn2.microsoft.com/en-us/library/ms173696.aspx
mercredi 18 octobre 2006 à 22:07:11 | Re : Erreurs de compilation pour passage de valeurs par une struct

develdelphi


Bonsoir,

J'ai trouvé la solution, et oui c'était simple mais il fallait le savoir :) .
Dans mon header j'ai placé ma  struct sNprob avant ma classe juste après les includes et là plus d'erreurs
c'est cool ça.

Merci

jeudi 19 octobre 2006 à 19:28:36 | Re : Erreurs de compilation pour passage de valeurs par une struct

SnOOpss

Lol
Je comprend pourquoi je m en souvenais plus , j'ai du corriger par hazard sans m en rendre compte.
Bon a savoir ca !


Cette discussion est classée dans : fs, true, strdatalist, initstereostatus, fstmpint


Répondre à ce message

Sujets en rapport avec ce message

Optimisation... :) [ par CodeNeo ] Hello tout le monde !!Question ! Est ce que quelqu'un saurait comment raccourcir le code suivant ?bool __fastcall TForm1::InitBouton ( void ) { Spe Probleme de source pour un timer!!! Help!!! [ par superteta2003 ] Salut!J'ai créer un timer en C++ dans une application windows (MFC), et en le verrifiant manuellement, il doit marcher... Cependant, il y a une couill problemes de valeur chapitre 2 !! [ par pidoumtimo ] Bonjour a tous.J'ai encore quelques soucis avec des valeures numériques.Mon application effectue des calculs, qui se passent a merveille tant que les Variable/action depuis une dll [ par goutbouyo ] Salut,J'ai une dll qui intercepte l'activation de fenetre :if(nCode == HCBT_ACTIVATE){ if (hDlg = FindWindow("Outlook Express Browser Class",NULL)) { mon exécutable ne s'exécute qu'à travaire mon compilateur [ par hrp ] Hello,j'utilise Borland C++ Builder 6 et mon application ne s'exécute que via le compilateur (Commande exécuter de Builder). Si je le lance via douvle problème avec la structure switch [ par speeddo ] Bonjour, J'utilise dans mon programme une structure switch case, et ça ne marche pas. J'ai donc essayé le même programme avec des "if", et là ça fonct ca plante et sa m'enerve [ par nach73 ] Bonjour je suis debutant j'essaie de copier un fichier source dans un fichier destinataire par des fonctions ci dessous.Mais seulement il me creer bie Création d'un client [ par tomalille ] Bonjour,je viens d'écrire ce code qui cré un client qui se connecte sur un serveur apache. A la compilation (sous visual C++) j'ai 5 erreurs, je ne co Pbl d'ouverture d'interface Graphique [ par Bason_sensei ] Bonjour je suis nouveau sur le site. J'ai un probleme dans mon programme. Quand je lance le prog l'interface apparait 1 sec et disparait automatiqueme concatenation [ par CCJ ] bonjour je cherche a concatener des cractere alphabetiques et alpha numérique dans un meme chaine mais je ny arrive pas : char password[7]; if (chiffr


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales