Delphi 将Windows演示应用程序移植到WinCE/XP Embedded

Delphi 将Windows演示应用程序移植到WinCE/XP Embedded,delphi,embedded,windows-ce,lazarus,windows-xp-embedded,Delphi,Embedded,Windows Ce,Lazarus,Windows Xp Embedded,我们有一系列针对微控制器产品的PC演示程序。这些程序通常连接到微控制器板上的USB HID芯片。USB芯片充当通信桥,允许程序通过SPI/I2C/UART与微处理器通信。这些程序可以配置微型计算机,并获取状态信息以显示给用户 我们现在正在寻找使用单板PC构建一些独立的演示。我们希望尽可能多地重用我们现有的演示应用程序源代码。理想情况下,我们可以按原样运行它们 有人对未来的最佳方式有什么建议吗?基本选项似乎是WinCE或XP嵌入式板。从电池寿命的角度来看,WinCE板似乎耗电较少,这将是一个优势

我们有一系列针对微控制器产品的PC演示程序。这些程序通常连接到微控制器板上的USB HID芯片。USB芯片充当通信桥,允许程序通过SPI/I2C/UART与微处理器通信。这些程序可以配置微型计算机,并获取状态信息以显示给用户

我们现在正在寻找使用单板PC构建一些独立的演示。我们希望尽可能多地重用我们现有的演示应用程序源代码。理想情况下,我们可以按原样运行它们

有人对未来的最佳方式有什么建议吗?基本选项似乎是WinCE或XP嵌入式板。从电池寿命的角度来看,WinCE板似乎耗电较少,这将是一个优势

我们现有的演示是用C++在Borland Builder或Delphi中构建的。 提前谢谢


编辑:请参阅下面我的答案,其中包含来自电路板供应商的信息。

WinCE没有Delphi版本,因此您需要重写应用程序。这同样适用于Borland Builder的控制库。只有使用了普通的Win32 API,才能轻松地将应用程序移植到WinCE。您还可能遇到硬件访问部分的问题。串行端口驱动程序可能无法正常工作。此外,您需要找到一个WinCE板,它可以充当USB主机并提供HID驱动程序(这不是很常见)


总之,我相信使用Windows XP嵌入式主板会更好。这些应用程序应该按原样运行。

免费的Pascal/Lazarus可以编译一些形式的Delphi应用程序到WiNCE/arm。甚至是可视化的。

作为更新,作为将来的参考,我想我会在这里发布我们与WinCE板供应商讨论的结果。警告:我实际上还没有试过这些

底线是,没有一种简单的方法来实现我们的期望(即,重新编译现有的演示应用程序以在WinCE下运行)。原因是Windows桌面风格中存在的通用HID驱动程序和标准API在WinCE中根本不存在

要在WinCE中与HID设备通信,您需要实现自定义HID驱动程序。这需要支持一个接口,允许用户模式应用程序与驱动程序通信,并构造要发送到物理设备的HID报告。由于此接口本身是自定义的,因此需要相应地更新应用程序代码

WinCE应用程序开发通常使用Visual Studio和Microsoft编译器完成。向我们建议的方法是:

  • 创建自定义HID类驱动程序。例如,这可以基于Microsoft键盘HID驱动程序
  • 创建用于与驱动程序对话的API
  • 使用.net创建GUI应用程序,并使用PInvoke与API进行实际对话

  • 所有这些令人挠头的最终结果是,为了避免与此方法相关的时间和学习曲线,我们将使用运行XP的板。然后,我们可以直接使用现有的演示应用程序。取舍是我们将不得不在电池寿命大幅缩短的情况下生活。

    请参阅我的“更新和供将来参考”答案-我们将使用XP。