«Операционная система в настоящее время не настроена для запуска этого приложения» Ошибка при запуске приложения MAPI - PullRequest
0 голосов
/ 04 мая 2018

Спасибо за ваш ответ и комментарии.

Позвольте мне описать ситуацию более подробно.

Я использую Visual C ++ 2008 для написания небольшого приложения, которое будет вызывать MAPI. Я использую MAPIStubLibrary для поддержки 32-битных и 64-битных MAPI. MAPIStubLibrary можно найти на https://msdn.microsoft.com/en-us/library/office/cc963763.aspx#sectionSection2. Он работает на других версиях Outlook и на большинстве систем. Однако в Windows 10 (32-разрядная версия) с установленным Office 2016 (32-разрядная версия), когда я выполняю следующую инструкцию для инициализации MAPI:

MAPIInitialize(NULL);

Я получу сообщение об ошибке выше "Операционная система в настоящее время не настроена для запуска этого приложения". И будет необработанное исключение, вызванное функцией GetDefaultMapiHandle (), которая находится в StubUtils.cpp, части MAPIStubLibrary.

Точная строка, вызывающая исключение:

hinstMapi = LoadLibraryW(wzPath);

Похоже, что MAPIStubLibrary пытается загрузить 32-битный MAPI, но не удается. wzPath указывает на olmapi32.dll вместо msmapi32.dll.

В сообщении об ошибке, если я нажму кнопку «ОК» в окне сообщения об ошибке, приложение продолжит работу без проблем. Тем не менее, сообщение об ошибке все еще расстраивает и сбивает с толку пользователей. Поэтому как устранить ошибку?

Большое спасибо.

1 Ответ

0 голосов
/ 04 мая 2018

Это обычно происходит, когда вы загружаете неверную DLL-версию MAPI (например, olmapi32.dll вместо msmapi32.dll) или если ваше приложение работает в режиме совместимости (вы включаете манифест?) И система MAPI завершает работу исправление неправильных функций Windows API при использовании более старой версии Windows.

...