Приложение MFC / AfxOleInit / сбой RAPI с RPC-сервером недоступен

Чтобы реализовать функцию копирования и вставки в приложении MFC, мы вызываем метод AfxOleInit().

Мы также используем RAPI для связи с устройствами Windows Mobile.

Когда AfxOleInit не используется, у нас нет проблем.

Но как только AfxOleInit действительно выполняется, мы воспроизводим следующую последовательность:

  • Мобильное устройство находится в базовой станции и правильно подключено через Центр устройств Windows Mobile (WMDC) к ПК, CeRapiInitEx и затем CeRapiUninit успешно завершены.
  • Удаляем мобильный телефон из базовой станции, которая отключается от WMDC.
  • Мы опровергаем мобильное устройство в подставке, и во второй раз CeRapiInitEx, а затем CeRapiUninit успешно завершают
  • Удаляем мобильный телефон из базовой станции, которая отключается от WMDC.
  • В этот момент на вкладке "Вывод" Visual Studio появляется сообщение: "RPC-сервер недоступен"
  • Мы опровергаем мобильное устройство в базовой станции, и на этот раз CeRapiInitEx дает сбой, возвращая значение "сервер RPC недоступен"

Мы попытались поместить код, который содержит вызовы функций DLL RAPI:

  • непосредственно в приложении MFC,

  • в DLL,

  • в ActiveX

мы воспроизводим ошибку во всех случаях.

Обратите внимание, что если этот код помещен в другой процесс, запущенный через CreateProcess из приложения MFC, ошибок нет.

Вы можете скачать приложение, которое воспроизводит эту ошибку по следующему адресу: http://iode-informatique.com/tests/winmob_mfc/rapi_test_app.zip

Обратите внимание, что если вы прокомментируете вызов AfxOleInit, ошибка не возникает.

С наилучшими пожеланиями.

0 ответов

Другие вопросы по тегам