2016-11-08 1 views
1

응용 프로그램의 일부는 MAPI에 로그온하고 백그라운드에서 전자 메일을 인덱싱하는 Windows 프로세스입니다. 많은 다른 버전의 Outlook과 잘 작동하며 며칠 전부터 Outlook 2016에서 사용되었습니다. 이제 MAPI 프로필에 로그온 할 때 AccessViolationException이 발생합니다.MAPI 프로필에 로그온 할 때 AccessViolationException이 발생했습니다.

Exception thrown at 0x00007FFDA7716BB9 (Mso20win32client.dll) in Tray.exe: 0xC0000005: Access violation writing location 0x0000000000000000. 

우리는 아직 그 위치에 액세스하려고하는 이유를 알아낼 수 없었다 :

예외 메시지입니다. 우리가 말할 수있는 한, 모든 주장이 유효합니다.

스택은 다음과 같습니다 호출 (우리가 아웃룩의 DLL에 대한 기호가없는) :

Mso20win32client.dll!00007ffda7716bb9() Unknown 
OLMAPI32.DLL!00007ffda48e325e() Unknown 
OLMAPI32.DLL!00007ffda48274e1() Unknown 
OLMAPI32.DLL!00007ffda4827466() Unknown 
OLMAPI32.DLL!00007ffda4827408() Unknown 
OLMAPI32.DLL!00007ffda4827317() Unknown 
CONTAB32.DLL!00007ffdee6a14f6() Unknown 
OLMAPI32.DLL!00007ffda482670c() Unknown 
OLMAPI32.DLL!00007ffda48261cd() Unknown 
OLMAPI32.DLL!00007ffda48253c6() Unknown 
OLMAPI32.DLL!00007ffda481653c() Unknown 
OLMAPI32.DLL!00007ffda4815dc8() Unknown 
MSMAPI32.DLL!00007ffdef225ee6() Unknown 
[External Code] 

관련 보인다 특히 한 this one on Experts Exchange입니다 유사한 문제에 대해 이야기 거기에 어떤 게시물이 있습니다, 그러나 우리는 여전히 근본 원인이나 수정 사항을 식별 할 수 없었습니다.

흥미롭게도 문제를 좁히기 위해 만든 스파이크 (테스트 프로그램)는 문제를 나타내지 않습니다. 또한 MAPI 정보를 시각화하는 도구 인 MFCMAPI가 잘 작동합니다. 즉, MFCMAPI를 사용하여 동일한 프로필에 로그온 할 수 있습니다.

누구든지 비슷한 문제가 있습니까? 더 디버깅하는 방법에 대한 아이디어?

답변

1

olmapi32.dll을로드하고 있습니다. 그럴 필요가 없습니다 - msmapi32.dll을로드하십시오.

+0

Dmitry, 우리 코드는 다음 플래그를 사용하여'MAPILogonEx'를 호출합니다 :'MAPI_EXTENDED | MAPI_UNICODE | MAPI_EXPLICIT_PROFILE | MAPI_BG_SESSION | MAPI_NEW_SESSION'을 호출하고 호출이 MSMAPI32.dll을 거쳐 OLMAPI32.dll을 거치는 위에서 설명한 호출 스택으로 연결됩니다. 우리는 무엇을 다르게 할 수 있습니까? 또한이 작업은 며칠 전까지는 아무런 변화없이 사용되었습니다. – floatingfrisbee

+0

또한 우리는 여기에 설명 된 것처럼 프로젝트에서'MapiStubLibrary.cpp'와'StubUtils.cpp'를 사용하여 MAPI 스텁 라이브러리 접근법을 사용하고 있습니다 : https://msdn.microsoft.com/en-us/library/office /cc963763.aspx – floatingfrisbee

+0

따라서 olmapi32.dll은 MAPILogonEx에 대한 호출에 의해로드되었거나 msmapi32.dll을 동적으로로드하거나 MAPIInitialize를 호출 할 때로드 되었습니까? –

관련 문제