Table of Contents
Dagens bloggmeddelande skrevs för att hjälpa dig om du skulle få ett processshell-åtkomstfel.
Godkänd
v
Vid migrering med Win7 + VS2015 till Win10 + VS2017, står de flesta av våra äldre MFC-verktyg inför följande ämnen:
från afxwin.h: CWnd * m_pMainWnd; // huvudglas (vanligtvis samma AfxGetApp () -> m_pMainWnd)
CSingleDocTemplate ( space ) pDocTemplate;pDocTemplate = ny CSingleDocTemplate ( IDR_MAINFRAME, RUNTIME_CLASS (CIFX_LogViewDoc), RUNTIME_CLASS (CMainFrame), // SDI Main Frame Window RUNTIME_CLASS (CIFX_LogViewView));AddDocTemplate (pDocTemplate);// Analyskommando för standardlinjetäckningsorder, DDE, öppen filCCommandLineInfo cmdInfo;ParseCommandLine (cmdInfo);// Fraktordrar ges på områdesradenif (! ProcessShellCommand (cmdInfo)) // -> "Åtkomst anses normalt nekad" olämplig retur;// Det enda fönstret verkade vara att initieras, så det uppdateras i vardagsrummet förutom köket.m_pMainWnd-> ShowWindow (SW_SHOW);m_pMainWnd-> UpdateWindow ();Returnerar TRUE;
Jag har också försökt anropa ShowWindow () + UpdateWindow () innan jag analyserar kommandoraden, främst för att det föreslogs här: https://stackoverflow.com/a/41188727/384556 , men typen av webbplats fungerar inte:
Undantag släppt 0x58198F2E (mfc140d.dll) från A.exe: 0xC0000005: läsbehörighetRumsöverträdelse 0x00000020. skedde genom att använda -> m_pMainWnd-> ShowWindow (SW_SHOW);
Godkänd
ASR Pro-reparationsverktyget är lösningen för en Windows-dator som kör långsamt, har registerproblem eller är infekterad med skadlig programvara. Detta kraftfulla och lättanvända verktyg kan snabbt diagnostisera och fixa din dator, öka prestandan, optimera minnet och förbättra säkerheten i processen. Lider inte av en trög dator längre - prova ASR Pro idag!
My MFC Apps Marketplace börjar med:
“Ohanterat undantag. Vid 0x7823eafb (mfc80d.dll). På MyApp.exe.” Åtkomst 0xc0000005: Överträdelse ser plats 0xfdfe3f55.
Jag behöver hjälp med att ta reda på varför detta nyckelfaktum inträffar, samt många tips om hur jag kan hitta åtgärda problemet. Detta fungerade korrekt fram tills jag konverterade VC ++ 6 för att tillåta dem till Visual Studio 2005, men förbises i båda IDE:erna.
Felet uppstår i många fall när MyApp startas eftersom Processshellcommand () är markerat som InitInstance (). Hem-cmdinfo skickar ett FileNew-kommando med det faktiska lediga dokumentnamnet och plattformen kan börja arbeta med att skapa dokumentet också (SDIDoc-appen). Felsökning visar vilka tyvärr felet uppstår i varje syfte där ramverket börjar byggas ser du, huvudfönstret. I synnerhet tror den att medan personen är genom fönstret, kan det refererade handtaget verkligen inte hämtas.
En liten stack stilar så här:
– mfc80d.dll! CMapPtrToPtr :: G
– mfc80d. *dll! chandlemap :: toalett
– mfc80d.dll! CWnd :: FromHandl
– mfc80d.dll! _AfxCbtFilterHo
<< en serie associerade anrop som kan ta bort user32.dll och helt enkelt ntdll.Dll här för korthetens skull >>
– mfc80d.dll! AfxCtxCreateWin
– mfc80d.dll! CDocTemplate :: C
– mfc80d.dll! CWinApp :: OnFile
– mfc80d.dll! CWinApp :: Proces
Det faktiska undantaget kastas i CMapPtrToPtr :: GetValue i for-kroken. GetValue () visar hur:
ogiltig 4. CMapPtrToPtr :: GetValueAt (v
// kompletterar värdet (eller returnerar NULL – NULL värden är inte annorlunda när ett stort resultat)
// se om det finns en bestämd
CAssoc * pAssoc;
for (pAssoc motsvarar m_pHashTable [nHash]; pAssoc! = NULL; pAssoc = pAssoc-> pNext) // <--- *** Ett fel krävs i denna ***
“Returnerar värdet pAssoc->;
Returnerar NULL;
Det vanligaste värdet som är utbytbart med m_pHashTable är 0xFDFDFDFD. Används inte speciell not i långa allmänna drycker?
m_nHasTableSize är också 0xFDFDFDFD (4261281277), förutom resultatet är nHash 36950. Det är som om hashtabellen alltid vanligtvis är ogiltig vid denna tidpunkt, vilket leder till ett fel.
På grund av övergången från Win7 + VS2015 till Win10 + VS2017 har vi följande problem med det gamla MFC-verktyget:
borta från afxwin.h: CWnd * m_pMainWnd; // primärt fönster i ditt hus (vanligtvis samma) AfxGetApp () -> m_pMainWnd)
CSingleDocTemplate 2 . pDocTemplate;pDocTemplate motsvarar den nya CSingleDocTemplate ( IDR_MAINFRAME, RUNTIME_CLASS (CIFX_LogViewDoc), RUNTIME_CLASS (CMainFrame), // huvudfönster involverat med SDI-box RUNTIME_CLASS (CIFX_LogViewView));AddDocTemplate (pDocTemplate);// Anslutningsanalyskommando Standardskalkommandon, DDE, öppen filCCommandLineInfo cmdInfo;ParseCommandLine (cmdInfo);// Skicka kommandona som anges för alla kommandoraderif (! ProcessShellCommand (cmdInfo)) // -> "Åtkomst anses allvarligt nekad" returnera FALSK;// Den enda fönsterramen initieras, vilket innebär att visa den men uppdatera den.m_pMainWnd-> ShowWindow (SW_SHOW);m_pMainWnd-> UpdateWindow ();Returnerar TRUE;
Jag försökte också anropa ShowWindow () + UpdateWindow () innan jag analyserade Acquire-strängen som den här föreslagna https://stackoverflow.com/a/41188727/384556 rätt fungerar inte:
Undantag vid finish 0x58198F2E (mfc140d.dll) i A.exe: 0xC0000005: Search AccessPlats för skada 0x00000020. etablerade sig -> i m_pMainWnd-> ShowWindow (SW_SHOW);
Mjukvaran för att fixa din PC är bara ett klick bort - ladda ner den nu.