Bonjour à tous,
Pour vous exposer mon problème, il faut que je vous parle d'abord de la structure du projet :
Nous avons une ou plusieurs applications, développées dans n'importe quel langage.
Nous avons de l'autre côté, un système de réservation. Pour faire communiquer notre application et le système de réservation, nous passons par une API, une dll écrite à l'origine en C.
Avec cette API, nous exploitons un système de fonction en callback pour écouter ce que l'utilisateur entre comme commandes, afin de les traiter et d'agir en conséquence.
Seulement, nous utilisons Windev comme AGL pour développer nos applications, et les callbacks ne fonctionnaient pas correctement. J'ai du développer une dll intermédiaire (en C) afin de modifier les mots clef pour la compilation (__cdecl en __stdcall).
Avec ceci, les callbacks fonctionnent, mais nous avons un nouveau problème. Lors d'un plantage de notre application, je sui sobligé de redémarrer le système de réservation afin que les callbacks fonctionnent de nouveau correctement. En fait, il faut lorsque l'on quitte l'application, "désinscrire" celle ci des callbascks de l'api. Or, lors d'un plantage, nous ne pouvons pas appeler la fonction nécessaire.
La solution viendrait, pour moi, avec ma dll passerelle : il faudrait que je détecte le fait que windows la décharge, lors du plantage de l'application qui l'appelle, afin que je m'occupe correctement de la fermeture de l'API.
Seulement, je ne sais pas du tout comment gérer ça, en C. J'aurais donc besoin d'une piste pour m'aider à avancer là dessus.
J'ai essayé de boucler sur GetMessage, pour détecter l'évènement WM_QUIT, mais je n'ai pas l'impression que ça fonctionne.
Quelqu'un pourrait-il me donner un conseil svp ?
merci d'avance
Partager