将Windows-CE应用程序移植到Windows桌面

时间:2011-05-17 15:22:43

标签: windows-ce porting evc4

我已经接管了一个Windows-CE 6.0应用程序,我希望将其移植到其他平台。它是一个相对简单,独立的GUI应用程序,用嵌入式C ++ 4.0版编写

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

据我所知,将桌面应用程序移植到CE是非常重要的;但反过来怎么样,这是我感兴趣的?是从Windows-CE到Windows桌面(有点)向上兼容?我肯定会喜欢听到“购买1000美元的Microsoft XYZ C ++开发环境,然后编译就行了!”

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

1 个答案:

答案 0 :(得分:2)

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

你可以确定UNICODE是定义的,构建的,运气不错,大部分都会“正常工作”。将要挂起的地方是:

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

任何对aygshell.dll的调用都可能存在问题。