【发布时间】:2018-05-04 02:22:43
【问题描述】:
感谢您的回复和cmets。
让我更详细地描述一下情况。
我使用 Visual C++ 2008 编写了一个将调用 MAPI 的小型应用程序。我使用 MAPIStubLibrary 来支持 32 位和 64 位 MAPI。可以在https://msdn.microsoft.com/en-us/library/office/cc963763.aspx#sectionSection2 找到 MAPIStubLibrary。它适用于其他版本的 Outlook 和大多数系统。但是,在安装了 Office 2016(32 位)的 Windows 10(32 位)下,当我执行以下语句来初始化 MAPI 时:
MAPIInitialize(NULL);
我将收到上述错误消息“操作系统当前未配置为运行此应用程序”。并且会从函数 GetDefaultMapiHandle() 引发未处理的异常,该函数位于 MAPIStubLibrary 的一部分 StubUtils.cpp 中。
导致异常的确切行是:
hinstMapi = LoadLibraryW(wzPath);
似乎 MAPIStubLibrary 正在尝试加载 32 位 MAPI 但失败了。 wzPath 指向 olmapi32.dll 而不是 msmapi32.dll。
在错误消息中,如果我单击错误消息框中的“确定”按钮,应用程序将继续运行而不会出现问题。但是,错误消息仍然使用户感到沮丧和困惑。那么,如何消除错误呢?
非常感谢。
【问题讨论】:
-
究竟是哪一行代码导致了错误?
标签: outlook windows-10 mapi office-2016