Приложение 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, ошибка не возникает.
С наилучшими пожеланиями.