MapiInitialize期间应用程序崩溃 [英] App crash during MapiInitialize

查看:59
本文介绍了MapiInitialize期间应用程序崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


您好,

Hello,

我不确定这是否是报告Mapi32中的错误的正确位置。 dll但是无论如何它是:

I'm not certain whether or not this is the correct place to report a bug in Mapi32.dll but anyway here it goes:

使用以下软件/ OS组合

With the following software/OS combination

- Windows 10(64)

- Windows 10 (64)

- Outlook 2016(32)incl。 Mapi32.dll(1.0.2536.0(th1.150709-1700))

- Outlook 2016 (32) incl. Mapi32.dll (1.0.2536.0 (th1.150709-1700))

我得到了易于重现的应用程序崩溃(MapiInitialize.exe中0x56e716db处的未处理异常:0xC0000409:0xc0000409)

I get the easily reproducible app crash (Unhandled exception at 0x56e716db in MapiInitialize.exe: 0xC0000409: 0xc0000409)

使用标准MFC对话框应用程序可轻松重现:

It's easily reproducible with an standard MFC dialog app:

标题:

-------

HINSTANCE m_hMAPI;

HINSTANCE m_hMAPI;

LPMAPIINITIALIZE m_pfMAPIInitialize;

LPMAPIINITIALIZE m_pfMAPIInitialize;

LPMAPIUNINITIALIZE m_pfMAPIUninitialize;

LPMAPIUNINITIALIZE m_pfMAPIUninitialize;

实施:

---------------

---------------

void CMapiInitializeDlg :: InitMapi(void)

void CMapiInitializeDlg::InitMapi(void)

{

if(m_hMAPI!= NULL)

if (m_hMAPI != NULL)

return;

m_hMAPI = :: LoadLibrary(_T(" mapi32.dll"));

m_hMAPI = ::LoadLibrary(_T("mapi32.dll"));

m_pfMAPIInitialize =(LPMAPIINITIALIZE):: GetProcAddress(m_hMAPI," MAPIInitialize");

m_pfMAPIInitialize = (LPMAPIINITIALIZE)::GetProcAddress(m_hMAPI, "MAPIInitialize");

m_pfMAPIUninitialize =(LPMAPIUNINITIALIZE):: GetProcAddress(m_hMAPI," MAPIUninitialize");

m_pfMAPIUninitialize = (LPMAPIUNINITIALIZE)::GetProcAddress(m_hMAPI, "MAPIUninitialize");

if(m_pfMAPIInitialize!= NULL)

if (m_pfMAPIInitialize != NULL)

m_pfMAPIInitialize(NULL);

m_pfMAPIInitialize(NULL);

}

void CMapiIni tializeDlg :: UninitMapi(void)

void CMapiInitializeDlg::UninitMapi(void)

{

if(m_hMAPI == NULL)

if (m_hMAPI == NULL)

return;

if(m_pfMAPIUninitialize!= NULL)

if (m_pfMAPIUninitialize != NULL)

m_pfMAPIUninitialize();

m_pfMAPIUninitialize();

:: FreeLibrary(m_hMAPI) ;

::FreeLibrary(m_hMAPI);

m_hMAPI = NULL;

m_hMAPI = NULL;

m_pfMAPIInitialize = NULL;

m_pfMAPIInitialize = NULL;

m_pfMAPIUninitialize = NULL;

m_pfMAPIUninitialize = NULL;

}

现在,当我这样调用上述函数时:

Now, when I do call the above functions like this:

InitMapi();

InitMapi();

UninitMapi();

UninitMapi();

InitMapi();

InitMapi();

UninitMapi();

UninitMapi();

在第二次调用InitMapi()时遇到应用程序崩溃,特别是在调用m_pfMAPIInitialize(NULL)时;

I get an app crash while in the second call to InitMapi() and here in particular while calling m_pfMAPIInitialize(NULL);

我在从Outlook 2013升级到Outlook后面临错误2016年。

I face the error just after upgrading from Outlook 2013 to Outlook 2016.

其他人是否也面临此错误?希望有人可以帮助我... ...

Did somebody else face this error as well? Hope someone can help me with this one...

祝你好运

推荐答案

Hello Christian,

Hello Christian,

为什么需要调用
MAPIInitialize
两次?你在主线程上运行代码吗?

Why do you need to call MAPIInitialize twice? Do you run the code on the main thread?

无论如何,你可以使用 https://officespdev.uservoice。 com 提交问题。

Anyway, you may use https://officespdev.uservoice.com for submitting issues.


这篇关于MapiInitialize期间应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆