none
problème avec une fonction callback depuis l'utilisation de CLR RRS feed

  • Question

  • Bonjour,

    J'utilise visual studio 2008 pro.

    J'utilise le SDK de flight simulator en C++, avec une fonction transmet_even, qui appelle SimConnect_CallDispatch, qui appelle une fonction CALLBACK MyDispatchProc1.

    Je veux maintenant utiliser la fonction transmet_even en thread. Puisque je suis sous visual studio, j'utilise les thread de System.Threading de windows. Il faut donc que j'utilise CLR, que je transforme la classe où se trouve transmet_even en "managé" (j'ajoute "ref" devant la déclaration de cette classe).

    Le problème est que le compilo sort à présent l'erreur
    Citation:
    error C2664: 'SimConnect_CallDispatch' : impossible de convertir le paramètre 2 de 'void (__clrcall *)(SIMCONNECT_RECV *,DWORD,void *)' en 'DispatchProc'
    alors qu'il n'y avait pas d'erreur avant.

    Je pense que le problème vient du fait que la fonction est maintenant en "__clrcall". Le compilo donne en effet le message
    Citation:
    warning C4441: convention d'appel de '__stdcall ' ignorée ; '__clrcall ' utilisé à la place
    en citant la ligne qui déclare la fonction CALLBACK MyDispatchProc1,ce qui fait penser qu'elle était avant en __stdcall et que 'SimConnect_CallDispatch' ne peut plus l'utiliser maintenant qu'elle est en __clrcall.

    Est ce que quelqu'un aurait une solution?
    Merci d'avance!
    mercredi 23 juillet 2008 08:49