0

为了在 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 的调用,则不会发生错误。

此致。

4

0 回答 0