Bonjour,

Dans le cadre d'une migration d'un projet VisualC 6.0 vers VisualC 2008, j'ai (entres autres ) l'erreur de compilation suivante.

d:\developpement\message\vaccdlgdl.cpp(3326) : error C3854: l'expression à gauche de '=' correspond à une fonction. Assignation à une fonction impossible (une fonction n'est pas une l-value)
Ca pointe sur la ligne rouge ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
// Pour demander à une CN de nous transmettre son pgm
void CVAccDlgDL::DemandeProgramme (CString& AdrIP, void* ptrFctAck,
                                                 UINT Offset, UINT Lng)
{
   [...]
   // On fixe l'adresse de la fonction à exécuter lors du retour de l'ack
   (*ptrMessM2) = (void (*) (const CString&, char*)) ptrFctAck;
  [...]
}
On retrouve le même type d'erreur ici:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
  (*ptrMessM30) = (void (*) (UCHAR)) ptrFctAck;
et la:
Les définitions sont:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
// Pteur sur la fonction à exécuter s/ retour (acquit) d'un M2 (réception d'un M2a)
void (*ptrMessM2) (const CString& AdrIP, char* Pgm) = NULL;
// Pteur sur la fonction à exécuter s/ retour (acquit) d'un MESSAGE (réception d'un M30)
void (*ptrMessM30) (UCHAR Acquit) = NULL;
Je précise que sous ça marchait visual C++ 6.0
Je fais une fois de plus appel à vos compétences
Merci d'avance