Modification de CFrameWnd à CFrameWndEx dans MFC provoque l'exception non gérée - toutes les idées?

StackOverflow https://stackoverflow.com/questions/3710176

  •  02-10-2019
  •  | 
  •  

Question

Toujours se habituer à ce MFC alouette et je l'ai frappé un mur de briques sur ce problème particulier. Je mise à jour du code existant pour utiliser certains des contrôles plus raffinés disponibles dans le MFC Feature Pack.

Après les exemples donnés en ligne pour mettre à jour une ancienne application MFC, changer la classe d'application de base CWinAppEx fonctionne très bien, mais quand je change CFrameWnd à CFrameWndEx, je reçois un message d'erreur Échec de débogage Assertion qui vient de quelque part dans mfc90d.dll! AFXGetRegPath. Ignorer ce message conduit à une série de 0XC0000005:. Erreurs de violation d'accès

Je serais reconnaissant pour toutes les suggestions sur la façon de s'y prendre pour régler ce.

Vive.

Était-ce utile?

La solution

Le code source pour le cadre MFC est inclus dans le cadre de Visual Studio, il doit être installé sur votre ordinateur. En général, lorsque le cadre déclenche une assertion de débogage, vous devez déposer dans le débogueur et cela vous aidera à déterminer la cause exacte du problème.

En regardant le code source, je peux voir que la fonction AFXGetRegPath contient quelques affirmations:

ENSURE(lpszPostFix != NULL);
ASSERT_VALID(pApp);
ENSURE(AfxGetApp()->m_pszRegistryKey != NULL);
ENSURE(AfxGetApp()->m_pszProfileName != NULL);

Si je devais deviner, je dirais que c'est la vérification de m_pszRegistryKey qui est défaillante, probablement parce que vous n'appelez pas SetRegistryKey dans la fonction InitInstance de votre classe d'applications.

J'espère que cela aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top