为了在 MFC 应用程序中实现复制和粘贴功能,我们调用 AfxOleInit() 方法。
我们还使用 RAPI 与 Windows Mobile 设备进行通信。
当不使用 AfxOleInit 时,我们没有问题。
但是一旦实际执行了 AfxOleInit,我们就会重现以下序列:
- 移动设备位于底座中并通过 Windows Mobile Device Center (WMDC) 正确连接到 PC,CeRapiInitEx 和 CeRapiUninit 成功完成
- 我们从与 WMDC 断开连接的底座中取出移动设备
- 我们将手机放在底座中,第二次,CeRapiInitEx 和 CeRapiUninit 成功完成
- 我们从与 WMDC 断开连接的底座中取出移动设备
- 此时,Visual Studio 的“输出”选项卡中出现一条消息:“RPC 服务器不可用”
- 我们将移动设备放在摇篮中,这次 CeRapiInitEx 失败,返回值“RPC 服务器不可用”
我们尝试将包含对 RAPI dll 函数调用的代码:
直接在 MFC 应用程序中,
在 DLL 中,
在 ActiveX
我们在所有情况下都会重现错误。
请注意,如果将此代码放在通过 MFC 应用程序的 CreateProcess 启动的另一个进程中,则不会出现错误。
您可以在以下地址下载重现此错误的应用程序:http: //iode-informatique.com/tests/winmob_mfc/rapi_test_app.zip
请注意,如果您注释对 AfxOleInit 的调用,则不会发生错误。
此致。