Table of Contents
L’article de blog d’aujourd’hui est écrit pour vous aider si les clients obtiennent une erreur d’intrusion d’accès au shell de processus.
Approuvé
v
Lors de la migration de Win7 + VS2015 vers Win10 + VS2017, la plupart de nos anciens supports MFC sont confrontés aux problèmes suivants :
de afxwin.h : CWnd m_pMainWnd ; // fenêtre principale (généralement la même AfxGetApp () -> m_pMainWnd)
CSingleDocTemplate * pDocTemplate;pDocTemplate équivaut au nouveau CSingleDocTemplate ( IDR_MAINFRAME, RUNTIME_CLASS (CIFX_LogViewDoc), RUNTIME_CLASS (CMainFrame), // Fenêtre du cadre principal SDI RUNTIME_CLASS (CIFX_LogViewView));AddDocTemplate (pDocTemplate);// Influence de l'analyse pour les commandes de couverture de ligne standard, DDE, fichier ouvertCCommandLineInfo cmdInfo;ParseCommandLine (cmdInfo);// Demandes d'expédition données sur la ligne de directionif (! ProcessShellCommand (cmdInfo)) // -> "Les accès sont considérés comme refusés" non retour;// La seule fenêtre semblait pouvoir être initialisée, elle était donc fraîche dans le salon ou la cuisine.m_pMainWnd-> ShowWindow (SW_SHOW);m_pMainWnd-> UpdateWindow ();Renvoie VRAI ;
J’ai également essayé d’appeler ShowWindow () + UpdateWindow () avant d’analyser la ligne de commande réelle, principalement parce que cela avait été précédemment suggéré ici : https://stackoverflow.com/a/41188727/384556 , mais le site internet ne fonctionne pas :
Exception dispersée 0x58198F2E (mfc140d.dll) de A.exe : 0xC0000005 : jetez un œil à l'accèsViolation de la salle 0x00000020. arrivé près de -> m_pMainWnd-> ShowWindow (SW_SHOW);
Approuvé
L'outil de réparation ASR Pro est la solution pour un PC Windows qui fonctionne lentement, a des problèmes de registre ou est infecté par des logiciels malveillants. Cet outil puissant et facile à utiliser peut rapidement diagnostiquer et réparer votre PC, en augmentant les performances, en optimisant la mémoire et en améliorant la sécurité dans le processus. Ne souffrez plus d'un ordinateur lent - essayez ASR Pro dès aujourd'hui !
Mon marché d’applications MFC commence par :
“Exception non gérée. À 0x7823eafb (mfc80d.dll). À MyApp.exe.” Accès 0xc0000005 : La violation voit l’emplacement 0xfdfe3f55. ”
J’aurai besoin d’aide pour comprendre pourquoi cela se produit maintenant, ainsi que quelques conseils sur la façon de trouver / résoudre le problème. Cela a fonctionné jusqu’à ce que je convertisse VC ++ 6 en Visual Studio 2005, mais n’est maintenant plus abordé dans les deux IDE.
L’erreur se produit fréquemment lors du démarrage de MyApp lorsque Processshellcommand () est marqué comme InitInstance (). La cmdinfo home envoie une commande FileNew avec le nom de vérification vide réel et la plate-forme obtient ce qui peut fonctionner en créant le document et la perspective (application SDIDoc). Le débogage montre que votre erreur se produit dans chaque partie, en particulier là où le framework commence à construire la fenêtre sérieuse. En particulier, il semble que tant que la personne est dans cette fenêtre, le descripteur référencé ne peut en effet pas être récupéré.
Une petite pile ressemble à ceci :
– mfc80d.dll ! CMapPtrToPtr :: G
– mfc80d. (espace) dll ! chandlemap :: toilette
– mfc80d.dll ! CWnd :: FromHandl
– mfc80d.dll ! _AfxCbtFilterHo
<< une série de visites qui peuvent supprimer user32.dll et aussi ntdll.Dll ici par souci de concision >>
– mfc80d.dll ! AfxCtxCreateWin
– mfc80d.dll ! CFrameWnd :: Cadre de chargement
– mfc80d.dll ! CDocTemplate :: C
– mfc80d.dll ! CSingleDocTempl
-.dll ! CDocManager :: Dans
– mfc80d.dll ! CWinApp :: OnFile
– mfc80d.dll ! CWinApp :: Proces
L’exception sous-jacente est levée dans CMapPtrToPtr :: GetValue dans la boucle for. GetValue() montre comment :
void * CMapPtrToPtr :: GetValueAt (v
// correspond à la valeur d’une personne (ou renvoie NULL – les valeurs NULL ne sont pas différentes en tant que résultat énorme défini)
// voir s’il y a un énorme
CAssoc * pAssoc;
pour (pAssoc complète m_pHashTable [nHash] ; pAssoc! = NULL ; pAssoc est égal à pAssoc-> pNext) // <--- *** Une erreur est requise pour le moment *** < br>
“Renvoie la valeur pAssoc-> ;
Renvoie NULL ;
La valeur la plus courante associée à m_pHashTable est 0xFDFDFDFD. N’est-ce pas ce n’est pas oublié utilisé en thé général long ?
m_nHasTableSize est définitivement également 0xFDFDFDFD (4261281277), et généralement le résultat est nHash 36950. C’est presque comme si la table de hachage était continuellement invalide à ce stade, conduisant à une erreur positive.
En raison de la transition de Win7 + VS2015 pour vous assister Win10 + VS2017, nous ne possédons que les problèmes suivants dans notre outil MFC obsolète :
y compris afxwin.h : CWnd * m_pMainWnd ; // fenêtre de la maison (généralement incontestablement la même) AfxGetApp () -> m_pMainWnd)
CSingleDocTemplate * pDocTemplate;pDocTemplate convient au nouveau CSingleDocTemplate ( IDR_MAINFRAME, RUNTIME_CLASS (CIFX_LogViewDoc), RUNTIME_CLASS (CMainFrame), // fenêtre principale de la boîte SDI RUNTIME_CLASS (CIFX_LogViewView));AddDocTemplate (pDocTemplate);// Commande d'analyse de connexion Commandes système standard, DDE, fichier ouvertCCommandLineInfo cmdInfo;ParseCommandLine (cmdInfo);// Envoie les commandes spécifiées principalement dans les lignes de commandeif (! ProcessShellCommand (cmdInfo)) // -> "L'accès est considéré comme refusé" renvoie FAUX ;// Au mieux, le cadre de la fenêtre est initialisé, alors montrez-le clairement mais mettez-le à jour.m_pMainWnd-> ShowWindow (SW_SHOW);m_pMainWnd-> UpdateWindow ();Renvoie VRAI ;
J’essaierai également d’appeler ShowWindow () + UpdateWindow () avant d’analyser le morceau de chaîne Acquire comme celui-ci suggéré https://stackoverflow.com/a/41188727/384556, les transactions fonctionnent uniquement :
Exception à la fin 0x58198F2E (mfc140d.dll) dans A.exe : 0xC0000005 : accès à la rechercheLieu de la blessure 0x00000020. arrivé -> par m_pMainWnd-> ShowWindow (SW_SHOW);
Le logiciel pour réparer votre PC est à portée de clic - téléchargez-le maintenant.