Outlook &引用;操作系统当前未配置为运行此应用程序;运行MAPI应用程序时出错

Outlook &引用;操作系统当前未配置为运行此应用程序;运行MAPI应用程序时出错,outlook,windows-10,mapi,office-2016,Outlook,Windows 10,Mapi,Office 2016,感谢您的回复和评论 让我更详细地描述一下情况 < >我使用Visual C++ 2008编写一个调用MAPI的小应用程序。我使用MAPIStubLibrary支持32位和64位MAPI。MAPITUB库可在找到。它适用于Outlook的其他版本和大多数系统。但是,在安装了Office 2016(32位)的Windows 10(32位)下,当我执行以下语句初始化MAPI时: MAPIInitialize(NULL); 我将收到上面的错误消息“操作系统当前未配置为运行此应用程序”。并且将从函数Ge

感谢您的回复和评论

让我更详细地描述一下情况

< >我使用Visual C++ 2008编写一个调用MAPI的小应用程序。我使用MAPIStubLibrary支持32位和64位MAPI。MAPITUB库可在找到。它适用于Outlook的其他版本和大多数系统。但是,在安装了Office 2016(32位)的Windows 10(32位)下,当我执行以下语句初始化MAPI时:

MAPIInitialize(NULL);
我将收到上面的错误消息“操作系统当前未配置为运行此应用程序”。并且将从函数GetDefaultMapiHandle()引发未经处理的异常,该函数位于StubUtils.cpp(MAPIStubLibrary的一部分)中

导致异常的确切行是:

hinstMapi = LoadLibraryW(wzPath);
似乎MAPIStubLibrary正在尝试加载32位MAPI,但失败。wzPath指向olmapi32.dll,而不是msmapi32.dll

在错误消息中,如果单击错误消息框中的“确定”按钮,应用程序将继续运行,不会出现问题。然而,错误消息仍然让用户感到沮丧和困惑。因此,如何消除误差


非常感谢。

这通常发生在您加载错误的MAPI dll(例如,olmapi32.dll而不是msmapi32.dll)或您的应用程序在兼容模式下运行(是否包含清单?)并且MAPI系统最终修补错误的Windows API函数(假设Windows版本较旧)时

究竟是哪行代码导致了错误?