MFC application se bloque sur Windows 7
J'ai une application MFC qui fonctionne sur XP et se bloque sur Windows 7. (Je n'ai pas la source - c'est un 3rd-party application de la 3e partie ne prend plus en charge; je suis juste essayer d'obtenir la balle à exécuter).
Plus de l'application fonctionne, mais il y en a un écran (fenêtre MDI) qui contient une tonne de contrôles (pire UI jamais), y compris les 3 contrôles ComboBox. Simplement en déplaçant la souris au-dessus de ces contrôles (qui sont dans l'état contracté) provoque un crash de l'application avec le message d'erreur "MFC application a cessé de fonctionner".
De ce que je peux déterminer à l'aide de Spy++, les contrôles sont standard zone de liste déroulante de la fenêtre de cours. Ils sont sous-classé, bien sûr, et je suppose que, quel que soit le traitement se fait en réponse à la souris-au-dessus de message est à l'origine de la faute.
J'ai été un peu en espérant que d'exécuter en mode de compatibilité XP pourrait l'aider, mais il ne le fait pas.
Ce genre de chose serait la cause de cet échec sur Windows 7 quand il travaillait OK sur XP? (Quelques autres parties de l'application a échoué parce que certaines Dll manquantes, et j'ai été en mesure de résoudre que par la copie de la Dll à partir de l'ancien environnement. J'ai été un peu en espérant que cela pourrait être quelque chose de similaire).
PS. L'ancien environnement a Office 2003, et la nouvelle a Office 2010. Alors que cette chose n'est pas vraiment lié à Office, je précise que dans le cas où elle est pertinente, en quelque sorte.
- Ne pouvez-vous pas obtenir un vidage sur incident et de faire certains étude post-mortem?
Vous devez vous connecter pour publier un commentaire.
Essayez d'exécuter le logiciel en tant qu'administrateur. Ma conjecture est que le logiciel tente d'écrire une sorte de journal/fichier temporaire pour
C:\Windows\
ouC:\Program Files\
. Peut-être l'application suppose valide d'un pointeur de fichier lors de l'ouverture d'un fichier pour l'écriture?Si cela fonctionne, utiliser Le Moniteur De Processus pour déterminer quel fichier il essaie d'ouvrir. Puis donner toutes les autorisations sur ce dossier/fichier et voir si elle fonctionne en mode normal.
Mise à JOUR
Si en faisant passer le contrôle produit un crash je serais prêt à parier que vous êtes en utilisant un certain type de Peau Manager pour obtenir une sorte de belle apparence de l'INTERFACE utilisateur. Le dépouillement consiste avancée de l'accrochage et/ou de l'API de détournement. De telles techniques ne sont pas garantis de travailler sur les futures versions de Windows.
Je sais que les anciennes versions de Codejock SkinManager plante sur Windows Vista et les versions ultérieures. Si c'est la bibliothèque que vous utilisez, je vous suggère de mettre à niveau vers la dernière version ou tout simplement le désactiver complètement.