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:
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:
(*ptrMessM30) = (void (*) (UCHAR)) ptrFctAck;
et la:
Les définitions sont:
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
Partager