Probleme pour mon programme

Signaler
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010
-
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010
-
Bonjour j'utilise visual C++ 2008 expresse. J'ai récupéré un fichier sur cppfrance dans l'espoir de pouvoir l'adapter à mes besoin. Je cherche au finale après l'envoie rs232 enregistrer la valeur dans un fichier excel pour convertir mes donné puis dans un fichier text (différente valeur arrivant par Rs232)
Le code que j'ai récupérer et le suivant http://www.cppfrance.com/code.aspx?ID=18704
Si j'ai bien comprit il peut récupérer les informations que j'envoie du pic16F877a vers le PC.
Voila les problemes que je recontre quand je compile :
1>------ Début de la génération : Projet : Serial, Configuration : Debug Win32 ------
1>Compilation en cours...
1>FctBar.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>MainFrame.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>Serial.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>StaticURL.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgAbout.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgCommConfig.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgFctCfg.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgReceiveFile.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgSendFile.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>Comm.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>CommManager.cpp
1>c:\users\luffy44\downloads\serial\commmanager.h(116) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(117) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(118) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\commmanager.h(119) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>Génération de code en cours...
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Luffy44\Downloads\Serial\Debug\BuildLog.htm"
1>Serial - 44 erreur(s), 11 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

Les lignes concerner sont :
// gestion transfert de fichiers
inline IsSendFile () {return (m_hSendFileThread != NULL);}
inline IsPauseSendFile () {return m_bFilePause;}
inline IsReceiveFile () {return (m_hReceiveFileThread != NULL);}
inline IsPauseReceiveFile () {return m_bFilePause;}
et
// nombre d'éléments dans un tableau
#define _countof(array) (sizeof(array) / sizeof(array[0]))

Svp aidez moi a corriger c'est erreur car je ne voit pas du tout ce qu'il faut changer pour le code deviennent bon.

9 réponses

Messages postés
14947
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
21 janvier 2021
93
Hello,
inline IsSendFile () {return (m_hSendFileThread !=  NULL);} 

Il manque le type de retour
inline  bool  IsSendFile () {return (m_hSendFileThread ! = NULL);} 

Idem pour les autres

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010

Merci Buno, grâce à toi et à internet j'ai pui enfin compiler le programme suivant http://www.cppfrance.com/code.aspx?ID=18704
Mais j'ai rencontré encore d'autre probleme que je n'arrive pas à résoudre (je dois être un boulet <= j'apprend petit à petit le C ^^ )
Ce que je souhaite faire c'est lire une température, un vent fort ou un vent faible pour cela on envoie avant une température le nombre 45, avant un vent faible le nombre 96 et avant un vent fort le nombre 20.
Donc à mon avis le programme devrait être comme ca :
-lire
-Si c'est une température
-lire
-écrire dans un fichier text
-lire
-écrire dans un fichier text (si cela est trop dur on peut avoir qu'une donné température mais cela est moins précis)
-retourner au debut
-Si c'est un vent fort
-lire
-écire dans un fichier text
-retourner au debut
-Si c'est un vent faible
-lire
-écire dans un fichier text
-retourner au debut

Ce que j'ai fait :

#include
#include <fstream>

using namespace std;
DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead)
{
// nombres d'octets que l'on peut lire sur le port
DWORD dwErrorFlags;
COMSTAT ComStat;
m_pComm->ClearError(&dwErrorFlags, &ComStat);
dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue);

// si aucune donnée à lire
if(dwNbBytesToRead == 0)
return 0;

// lecture
DWORD dwNbBytesRead;
OVERLAPPED ov = {0};
if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov))
{
// si erreur autre que lecture non terminée
if(GetLastError() != ERROR_IO_PENDING)
return 0;

// on attend que la lecture soit finie
while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE))
{
if(GetLastError() != ERROR_IO_INCOMPLETE)
break;
}
}

// on renvoi le nombre d'octets lu
return dwNbBytesRead;

// Voir si le bytes est égal à 45
if(lpBuffer = 00101101)
{
DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead)
{
// nombres d'octets que l'on peut lire sur le port
DWORD dwErrorFlags;
COMSTAT ComStat;
m_pComm->ClearError(&dwErrorFlags, &ComStat);
dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue);

// si aucune donnée à lire
if(dwNbBytesToRead == 0)
return 0;

// lecture
DWORD dwNbBytesRead;
OVERLAPPED ov = {0};
if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov))
{
// si erreur autre que lecture non terminée
if(GetLastError() != ERROR_IO_PENDING)
return 0;

// on attend que la lecture soit finie
while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE))
{
if(GetLastError() != ERROR_IO_INCOMPLETE)
break;
}
}

// on renvoi le nombre d'octets lu
return dwNbBytesRead;

int main()
{ // ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier)
{
int temp1 = lpBuffer
fichier << "Température 1 : " << temp1 << endl;
fichier << "Température 2 : " << temp2 << endl;
fichier << "Vent faible : " << faible << endl;
fichier << "Vent fort : " << fort << endl;

fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;
}

}

// Voir si le bytes est égal à 20
if(lpBuffer = 00010100)
{
DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead)
{
// nombres d'octets que l'on peut lire sur le port
DWORD dwErrorFlags;
COMSTAT ComStat;
m_pComm->ClearError(&dwErrorFlags, &ComStat);
dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue);

// si aucune donnée à lire
if(dwNbBytesToRead == 0)
return 0;

// lecture
DWORD dwNbBytesRead;
OVERLAPPED ov = {0};
if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov))
{
// si erreur autre que lecture non terminée
if(GetLastError() != ERROR_IO_PENDING)
return 0;

// on attend que la lecture soit finie
while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE))
{
if(GetLastError() != ERROR_IO_INCOMPLETE)
break;
}
}

// on renvoi le nombre d'octets lu
return dwNbBytesRead;

int main()
{ // ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier)
{
int fort = lpBuffer
fichier << "Température 1 : " << temp1 << endl;
fichier << "Température 2 : " << temp2 << endl;
fichier << "Vent faible : " << faible << endl;
fichier << "Vent fort : " << fort << endl;

fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;
}

}

// Voir si le bytes est égal à 96
if( lpBuffer = 01100000)
{
DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead)
{
// nombres d'octets que l'on peut lire sur le port
DWORD dwErrorFlags;
COMSTAT ComStat;
m_pComm->ClearError(&dwErrorFlags, &ComStat);
dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue);

// si aucune donnée à lire
if(dwNbBytesToRead == 0)
return 0;

// lecture
DWORD dwNbBytesRead;
OVERLAPPED ov = {0};
if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov))
{
// si erreur autre que lecture non terminée
if(GetLastError() != ERROR_IO_PENDING)
return 0;

// on attend que la lecture soit finie
while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE))
{
if(GetLastError() != ERROR_IO_INCOMPLETE)
break;
}
}

// on renvoi le nombre d'octets lu
return dwNbBytesRead;

int main()
{ // ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier)
{
int faible = lpBuffer
fichier << "Température 1 : " << temp1 << endl;
fichier << "Température 2 : " << temp2 << endl;
fichier << "Vent faible : " << faible << endl;
fichier << "Vent fort : " << fort << endl;

fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;
}

}
}

Y a t-il une facon plus facile pour faire ce que je veut faire.

Les erreurs que j'obtient :
1>------ Début de la génération : Projet : Serial, Configuration : Debug Win32 ------
1>Compilation en cours...
1>CommManager.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>c:\users\luffy44\downloads\serial\commmanager.cpp(611) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(614) : error C2601: 'TCommManager::ReadBlock' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(612) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(668) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(671) : error C2601: 'TCommManager::ReadBlock' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(669) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(725) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(728) : error C2601: 'TCommManager::ReadBlock' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(726) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(789) : error C2601: 'TCommManager::WriteBlock' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(669) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(820) : error C2601: 'TCommManager::ReadThreadFunc' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(669) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(895) : error C2601: 'TCommManager::SendFileThreadFunc' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(669) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(974) : error C2601: 'TCommManager::ReceiveFileThreadFunc' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(669) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(1045) : fatal error C1075: fin de fichier rencontrée avant que l'élément accolade '{' gauche de 'c:\users\luffy44\downloads\serial\commmanager.cpp(669)' soit équilibré
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Luffy44\Downloads\Serial\Debug\BuildLog.htm"
1>Serial - 11 erreur(s), 1 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

Voila est merci de votre aide, je vais continuer à chercher même si j'ai rien trouver pour l'instant.
Messages postés
14947
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
21 janvier 2021
93
error C2601: 'TCommManager::ReadBlock' : définitions de fonctions locales non conformes

--> tu définis une fonction dans du code, c'est interdit!
if (...)
{
  DWORD ReadBlock(...)
  {
    ...
  }
}

--> ta fonction, il faut la mettre en dehors de ta fonction

cette ligne comporte un '{' qui n'est pas équilibré

--> je pense que c'est compréhensible: tu as une accolade qui n'est pas fermée
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010

//***************************************************************************************
// ReadBlock : lit un bloc de données sur le port série.
// entrée : lpBuffer : buffer où écrire les données.
// dwNbBytesToRead : nombre d'octets à lire.
// retour : le nombre d'octets lus.
//***************************************************************************************
DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead)
{
// nombres d'octets que l'on peut lire sur le port
DWORD dwErrorFlags;
COMSTAT ComStat;
m_pComm->ClearError(&dwErrorFlags, &ComStat);
dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue);

// si aucune donnée à lire
if(dwNbBytesToRead == 0)
return 0;

// lecture
DWORD dwNbBytesRead;
OVERLAPPED ov = {0};
if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov))
{
// si erreur autre que lecture non terminée
if(GetLastError() != ERROR_IO_PENDING)
return 0;

// on attend que la lecture soit finie
while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE))
{
if(GetLastError() != ERROR_IO_INCOMPLETE)
break;
}
}

// on renvoi le nombre d'octets lu
return dwNbBytesRead;

// Voir si le bytes est égal à 45
if(lpBuffer = 00101101)
{
int main()
{
int A = 1;
int B = 0;
int C = 0;

}
}

// Voir si le bytes est égal à 20
if(lpBuffer = 00010100)
{
int main()
{
int A = 0;
int B = 1;
int C = 0;
}

}

// Voir si le bytes est égal à 96
if( lpBuffer = 01100000)
{
int main()
{
int A = 0;
int B = 0;
int C = 1;
}
}

//Voir si c'est une température
if(A = 1)
{
int main()
{
// ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier)
{
int A = 0;
int temp = lpBuffer;
fichier << "Temperature : " << temp << endl;
fichier << "Vent faible : " << faible << endl;
fichier << "Vent fort : " << fort << endl;

fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;
}
}

//Voir si c'est un vent faible
if(B = 1)
{
int main()
{
// ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier)
{
int B = 0;
int faible = lpBuffer;
fichier << "Temperature : " << temp << endl;
fichier << "Vent faible : " << faible << endl;
fichier << "Vent fort : " << fort << endl;

fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;
}
}

//Voir si c'est un vent fort
if(C = 1)
{
int main()
{ // ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier)
{
int C = 0;
int fort = lpBuffer;
fichier << "Temperature : " << temp << endl;
fichier << "Vent faible : " << faible << endl;
fichier << "Vent fort : " << fort << endl;

fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;
}
}
}







Voila le nouveau code que j'ai confectionner pour respecter ce que tu m'a dit
Je par contre je ne voit pas trop ou il manque une accolade ( est ce que lancien code été mieu ou celui ci?)

En haut de mon code j'ai rajouter (pour cela j'ai du telecharger les libreries car il n'y en avait pas sur visual 2008)
#include
#include <fstream>

using namespace std;


Mais j'obtient ceci comme erreur et je voit pas comment les corriger.

1>------ Début de la génération : Projet : Serial, Configuration : Debug Win32 ------
1>Compilation en cours...
1>CommManager.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>c:\users\luffy44\downloads\serial\commmanager.cpp(611) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(614) : error C2601: 'main' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(612) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(623) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(626) : error C2601: 'main' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(624) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(635) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(638) : error C2601: 'main' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(636) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(646) : error C2065: 'A' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(649) : error C2601: 'main' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(647) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(671) : error C2065: 'B' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(674) : error C2601: 'main' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(672) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(696) : error C2065: 'C' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(699) : error C2601: 'main' : définitions de fonctions locales non conformes
1> c:\users\luffy44\downloads\serial\commmanager.cpp(697) : cette ligne comporte un '{' qui n'est pas équilibré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(656) : error C2065: 'lpBuffer' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(658) : error C2065: 'faible' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(659) : error C2065: 'fort' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(681) : error C2065: 'lpBuffer' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(682) : error C2065: 'temp' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(684) : error C2065: 'fort' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(705) : error C2065: 'lpBuffer' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(706) : error C2065: 'temp' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(707) : error C2065: 'faible' : identificateur non déclaré
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Luffy44\Downloads\Serial\Debug\BuildLog.htm"
1>Serial - 21 erreur(s), 1 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========


Je te remercirait jamais assez de m'aidez ^^. (En espérant que j'arriverai a finir mon programme a temps ^^ <--- je pense que je suis en bonne voie avec ton aide)


Ps : dsl pour le code qui n'est pas bien comme il faut les tab de mon code ne marche pas sur ccpfrance :s
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010

Hum dsl pour le denrier message j'ai poster un peu trop vite (la nuit m'a porté conseil) et dsl aussi pour les fautes que je fait (orthographe et en C++)

J'ai enlever int main() car c'est un fonction dans une fonction comme ce que vous m'avez dit avant et j'ai aussi enlever les phrases en trop ( ex : fichier << "Vent fort : " << fort << endl; dans le vent faible)

et j'obtient plus que 9 erreurs et ce que si j'ai enlever int main() cela ne pose pas de soucis? Mais pour les autres erreur je comprend vraiment pas pourquoi seulement certain ipbuffer ou A ne veut-il pas? pourquoi le signe = ne marche pas, comment écire le code alors?

Voila les erreur que j'obtient maintenant :

1>------ Début de la génération : Projet : Serial, Configuration : Debug Win32 ------
1>Compilation en cours...
1>CommManager.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>c:\users\luffy44\downloads\serial\commmanager.cpp(611) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(619) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(627) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(635) : error C2065: 'A' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(644) : error C2440: 'initialisation' : impossible de convertir de 'LPVOID' en 'int'
1> Aucun contexte dans lequel cette conversion est possible
1>c:\users\luffy44\downloads\serial\commmanager.cpp(657) : error C2065: 'B' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(665) : error C2440: 'initialisation' : impossible de convertir de 'LPVOID' en 'int'
1> Aucun contexte dans lequel cette conversion est possible
1>c:\users\luffy44\downloads\serial\commmanager.cpp(678) : error C2065: 'C' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(686) : error C2440: 'initialisation' : impossible de convertir de 'LPVOID' en 'int'
1> Aucun contexte dans lequel cette conversion est possible
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Luffy44\Downloads\Serial\Debug\BuildLog.htm"
1>Serial - 9 erreur(s), 1 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Messages postés
14947
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
21 janvier 2021
93
1>c:\users\luffy44\downloads\serial\commmanager.cpp(611) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction

--> d'un côté, tu as une variable de type LPVOID (pointeur) et tu essayes de mettre ça dans un int. Regarde à la ligne 611 (je ne sais pas c'est laquelle).

if(B = 1)
{
int main()
{
// ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);
...

--> c'est quoi, ça?? Encore une déclaration de fonctions dans une autre...
Je te conseilles de faire quelques turoriels avant de t'attaquer à la liaison RS232...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010

heu je l'avait enlever le int main (marquer dans le post juste avant celui que tu a poster)

mon nouveau code ^^ :

DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead)
{
int A = 0;
int B = 0;
int C = 0;
int temp = 0;
int faible = 0;
int fort = 0;
FILE* fichier = NULL;

// nombres d'octets que l'on peut lire sur le port
DWORD dwErrorFlags;
COMSTAT ComStat;
m_pComm->ClearError(&dwErrorFlags, &ComStat);
dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue);

// si aucune donnée à lire
if(dwNbBytesToRead == 0)
return 0;

// lecture
DWORD dwNbBytesRead;
OVERLAPPED ov = {0};
if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov))
{
// si erreur autre que lecture non terminée
if(GetLastError() != ERROR_IO_PENDING)
return 0;

// on attend que la lecture soit finie
while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE))
{
if(GetLastError() != ERROR_IO_INCOMPLETE)
break;
}

}

// on renvoi le nombre d'octets lu
return dwNbBytesRead;

// Voir si le bytes est égal à 45
if(dwNbBytesRead == 45)
{
A = 1;
B = 0;
C = 0;
}

// Voir si le bytes est égal à 20
if(dwNbBytesRead == 20)
{
A = 0;
B = 1;
C = 0;
}

// Voir si le bytes est égal à 96
if(dwNbBytesRead == 96)
{
A = 0;
B = 0;
C = 1;
}

//Voir si c'est une température
if(A = 1)
{

// ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier != NULL)
{
A = 0;
temp = dwNbBytesRead;
fichier << "Temperature : " << temp << endl;

fichier.close();

}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;

}

//Voir si c'est un vent faible
if(B = 1)
{
// ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier != NULL)
{
B = 0;
faible = dwNbBytesRead;
fichier << "Vent faible : " << faible << endl;

fichier.close();

}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;

}

//Voir si c'est un vent fort
if(C = 1)
{
// ouverture en écriture avec ajout du fichier ouvert
ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app);

if(fichier != NULL)
{
C = 0;
fort = dwNbBytesRead;
fichier << "Vent fort : " << fort << endl;

fichier.close();

}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;

return 0;

}
}


Les avertissements que j'obtient que j'obtient (est ce grave) :

1>------ Début de la régénération globale : Projet : Serial, Configuration : Debug Win32 ------
1>Suppression des fichiers de sortie et des fichiers intermédiaires du projet 'Serial', configuration 'Debug|Win32'
1>Compilation en cours...
1>FctBar.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>c:\users\luffy44\downloads\serial\fctbar.cpp(86) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : voir la déclaration de 'strcpy'
1>c:\users\luffy44\downloads\serial\fctbar.cpp(111) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : voir la déclaration de 'strcpy'
1>MainFrame.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>Serial.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>StaticURL.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>Comm.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>CommManager.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgAbout.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgCommConfig.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgFctCfg.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgReceiveFile.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>DlgSendFile.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>Génération de code en cours...
1>Compilation des ressources en cours...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Compilation du manifeste en ressources en cours...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Édition des liens en cours...
1>Incorporation du manifeste en cours...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Luffy44\Downloads\Serial\Debug\BuildLog.htm"
1>Serial - 0 erreur(s), 13 avertissement(s)
======== Régénération globale : 1 a réussi, 0 a échoué, 0 a été ignoré ==========

Et est ce que cela fait ce que je veut que sa fasse ou pas? (normalement?)


Ce que je souhaite faire c'est lire une température, un vent fort ou un vent faible que l'on envoie du PIC16F877a par liaison RS232 pour cela on envoie avant une température le nombre 45, avant un vent faible le nombre 96 et avant un vent fort le nombre 20.
Messages postés
14947
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
21 janvier 2021
93
Les avertissements que j'obtient que j'obtient (est ce grave)

--> certains diront que ce ne sont que des avertissements. Moi, je préfère le "0 error, 0 warning". Dans ton cas, ce n'est pas méchant:
- redéfinition de macro: a priori, la macro _countof est définie 2 fois: une fois dans serial.h, une fois en standard (stdlib.h). Regarde si tu peux utiliser celle en standard
- strcpy: déclaré comme obsolète. Soit tu utilises strcpy_s, soit tu peux "cacher" le message de warning avec #pragma disable 4996 (je crois)

Et est ce que cela fait ce que je veut que sa fasse ou pas? (normalement?)

--> ça, je ne sais pas
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
6
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
24 mars 2010

OK merci pour tout (moi aussi
je préfère le "0 error, 0 warning".
(bien que je soit nul et que c'est difficile pour moi) donc j'ai plus qu'à le tester en réel ^^.

Et encore merci