3

我已经接管了一个我想移植到其他平台的 Windows-CE 6.0 应用程序。它是一个相对简单的、自包含的 GUI 应用程序,用 Embedded C++ 4.0 版编写

我感兴趣的第一个目标是普通的 Windows 桌面(即 XP、Vista、Windows-7)。

我知道将桌面应用程序移植到 CE 并非易事。但是反过来呢,这是我感兴趣的?从 Windows-CE 到 Windows 桌面(有点)向上兼容吗?我当然很想听到“购买这个 1000 美元的 Microsoft XYZ C++ 开发环境,然后编译即可使用!”

(仅供参考,我没有使用 GUI 应用程序的经验,也没有在 Windows 环境中编程;假装我只是一个简单的 linux/unix 人,拥有数十年的 C/C++ 经验,但绝对没有 Windows-Fu ... ;-)

4

1 回答 1

3

实际上,移植应该非常简单。CE 主要是 Win32 的一个子集,重点强调 Unicode。

您可能可以确保定义、构建 UNICODE,并且如果运气好的话,它的大部分将“正常工作”。会挂断的地方有:

  • UI 可能设置为与您的 PC 不匹配的分辨率 - CE 应用程序通常针对特定设备和分辨率,这在 PC 上不一定非常美观。
  • 从 coredll 动态加载(GetProcAddress)的任何东西都必须重新映射到 kernel32/user32/etc
  • 如果设备使用 SIP(​​软件输入面板 - 即屏幕键盘),那么所有这些都必须去掉。
  • 如果应用程序使用任何必须被替换的通知(图标等)
  • 如果应用程序使用任何电源管理,则必须删除
  • 如果应用程序使用任何特定于设备的东西——尤其是直接调用驱动程序,所有这些都必须被替换
  • 如果应用程序使用点对点队列,则必须更换
  • 如果应用程序正在使用必须更换的设备管理器(例如,获取已连接设备的通知)

任何对aygshell.dll 的调用也可能有问题。

于 2011-05-17T17:09:16.737 回答