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

发布于 2024-11-07 15:03:40 字数 397 浏览 1 评论 0原文

我已经接管了一个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...;-)

I have taken over a Windows-CE 6.0 application that I would like to port to other platforms. It is a relatively straightforward, self-contained GUI application, written in Embedded C++ Version 4.0

The very first target I am interested in would be a regular Windows desktop (i.e. XP, Vista, Windows-7).

I understand that porting a desktop application to CE is nontrivial; but what about the reverse, which is what I am interested in? Is going from Windows-CE to Windows Desktop (somewhat) upward-compatible? I sure would love to hear "buy this $1000 Microsoft XYZ C++ development environment and just compile and go!"

(FYI I have no experience with GUI applications nor with programming in the Windows environment; pretend I am but a simple linux/unix guy with decades of C/C++ experience but absolutely no Windows-Fu... ;-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

网白 2024-11-14 15:03:40

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

您也许可以确保定义、构建 UNICODE,如果运气好的话,其中大部分都会“正常工作”。可能会出现问题的地方有:

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

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

Porting up should, actually, be pretty straightforward. CE is mostly a subset of Win32, with heavy emphasis on Unicode.

You can probably make sure UNICODE is defined, build and, with a little luck, most of it will "just work". Places that are going to be hangups are:

  • The UI is likely to be set for a resolution that doesn't match your PC - often CE apps are targeted to a specific device and resolution and this doesn't necessarily come out very aesthetic on a PC.
  • Anything dynamically loaded (GetProcAddress) from coredll will have to be re-mapped to kernel32/user32/etc
  • If the device uses the SIP (software input panel - i.e. on-screen keyboard) then all of that has to get stripped out.
  • If the app uses any Notifications (icons, etc) that has to get replaced
  • If the app uses any power management, that has to get ripped out
  • If the app uses any device-specific stuff - especially direct calls to drivers, all of that has to be replaced
  • If the app is using point to point queues, that has to get replaced
  • If the app is using the device manager (e.g. to get notifications of copnnected devices) that has to get replaced

Any calls into aygshell.dll are likely to be problematic as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文