Bonjour,
Je dois faire la migration pour un soft écrit en VC6 vers une version plus actuelle (vs2017). J'ai déjà essayé quelques plâtres mais là je coince depuis quelques jours et je n'ai pas d'idée. J'ai donc besoin de vous car je suis coincé.
Ce soft utilise les MFC et j'ai actuellement un problème dans une boite de dialogue (CFileDialog) pour choisir un fichier. Le fonctionnement nominal que je comprends (pas de doc et pas l'auteur d'origine) c'est qu'un thread tourne en fond qui connait notre format de fichier propriétaire, la boite de dialogue lui adresse une requête quand on (simple) clic sur un fichier ce qui a pour effet que ce thread de fond verifie 2 ou 3 trucs dans le fichier. La requête est faite via un système de messagerie pour que l'IHM reste pas figé. A la fin des vérification un système plus ou moins compliqué fait que le thread de fond doit dire à l'IHM que la vérification est terminée. Ceci doit se faire par un message avec un PostMessage. En pas à pas j'arrive bien jusqu'au PostMessage sans erreur.
Mais personne ne réceptionne le message !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (::PostMessage(hLocalWnd, WM_PROXY_RESPONSE, static_cast<WPARAM>(NULL), reinterpret_cast<LPARAM>(pCopyHint)) != 0) { delete pCopyHint, pCopyHint = NULL; }
J'ai cherché sur le NET et j'ai trouvé 2 trucs que je n'ai pas pu confirmer ou infirmer.
- Depuis une certaine version (VIStA) certaines méthodes ne sont plus appelées (CFileDialog::OnInitDialog par exemple). Je confirme juste qu'effectivement je ne passe pas dans ma méthode surchargée. Mais je n'ai pas trouvé de work around sur ce sujet. Donc certaines choses ne sont pas faites dans le code.
- Il paraîtrait que dans le cadre de certains xx.DoModal() les user messages ne sont pas propagés.
Ces 2 items pourraient expliquer bien des choses mais je sais pas quoi en faire.
Je ne suis pas développeur Windows est j'ai jamais fais de MFC (un peu de WIN32 historiquement et maintenant C#).
J'ai besoin de vous aussi bien pour solutionner le problème si vous avez rencontré ces problèmes que pour m'aider à investiguer si vous avez des réflexes, des outils géniaux sur ce framework.
Merci
Partager