アプリケーションの一部は、MAPIにログオンし、バックグラウンドで電子メールのインデックスを作成するWindowsプロセスです。多くの異なるバージョンのOutlookでうまく動作し、数日前にはOutlook 2016の操作に使用されました。これで、MAPIプロファイルにログオンするときにAccessViolationExceptionが発生します。MAPIプロファイルへのログオン時のAccessViolationException
Exception thrown at 0x00007FFDA7716BB9 (Mso20win32client.dll) in Tray.exe: 0xC0000005: Access violation writing location 0x0000000000000000.
我々はまだその場所にアクセスしようとしている理由を把握することができていない:
これは例外メッセージです。私たちが知る限り、すべての議論は有効です。
スタックはこのようになりますコール(私たちは、Outlookの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]
関連すると思われる特定の1つは、this one on Experts Exchangeで同様の問題について話そこにいくつかの記事は、ありますが、根本的な原因や修正を特定することができませんでした。
問題を絞り込むために作成された興味深いスパイク(テストプログラム)は、この問題を示しません。また、MAPI情報を視覚化するためのツールであるMFCMAPIもうまく機能します。つまり、同じプロファイルにログオンすることができます。
他にも同様の問題がありますか?どのようにデバッグするかについてのアイディアはどれですか?
Dmitry、私たちのコードは、次のフラグを指定して 'MAPILogonEx'を呼び出しています:' MAPI_EXTENDED | MAPI_UNICODE | MAPI_EXPLICIT_PROFILE | MAPI_BG_SESSION | MAPI_NEW_SESSION'を呼び出し、上で説明したコールスタックにつながります。コールはMSMAPI32.dllを経由し、次にOLMAPI32.dllを経由します。私たちは何が違うのでしょうか?これは数日前までは何も変更せずに作業していました。 – floatingfrisbee
また、ここで説明するように、プロジェクトでは 'MapiStubLibrary.cpp'と' StubUtils.cpp'を使用してMAPIスタブライブラリアプローチを使用しています:https://msdn.microsoft.com/en-us/library/office /cc963763.aspx – floatingfrisbee
したがって、MAPILogonExへの呼び出しによってolmapi32.dllが読み込まれるか、msmapi32.dllを動的に読み込んだりMAPIInitializeを呼び出す前にロードされていましたか? –