2016-11-08 3 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. 

我々はまだその場所にアクセスしようとしている理由を把握することができていない:

これは例外メッセージです。私たちが知る限り、すべての議論は有効です。

スタックはこのようになりますコール(私たちは、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もうまく機能します。つまり、同じプロファイルにログオンすることができます。

他にも同様の問題がありますか?どのようにデバッグするかについてのアイディアはどれですか?

答えて

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

したがって、MAPILogonExへの呼び出しによってolmapi32.dllが読み込まれるか、msmapi32.dllを動的に読み込んだりMAPIInitializeを呼び出す前にロードされていましたか? –

関連する問題