将带有 C DLL 的旧版 VB6 应用程序迁移到 .NET MAUI – 从哪里开始?跨平台兼容性

问题描述 投票:0回答:1

我目前的任务是迁移最初使用 Visual Basic 6 构建的旧传感器数据采集应用程序。它使用基于 C 的 DLL 与硬件通信并收集传感器数据。目标是使应用程序现代化并使其跨**多个平台运行 - **Windows、iOS、macOS 和 Android。

我们选择 .NET MAUI 进行此次迁移,因为它具有跨平台支持。但是,我有几个问题,并且有点不知道从哪里开始,特别是关于 DLL,这显然是 Windows 特定的:

如何让现有的基于 C 的 DLL 在 macOS、iOS 和 Android 上运行? DLL 应该重写还是有办法将其包装在跨平台解决方案中? 如果我需要重写或改编 DLL,我应该采取什么方法(例如 P/Invoke、特定于平台的服务)? 如何确保硬件通信(DLL 当前处理的)能够跨不同平台运行? 我应该从哪里开始迁移?第一步应该是什么? 是否有任何工具、库或资源可以帮助迁移 DLL 或处理跨平台硬件通信? 我一直在网上寻找答案,但尚未找到此类迁移的明确指南或流程。任何指导、资源或建议都会非常有帮助!

谢谢!

dll maui cross-platform vb6-migration
1个回答
0
投票

有了 DLL 源代码,事情看起来好多了。  硬件不是我的专业领域。  但是,有了这些信息,其他人应该能够帮助您。

使用 iOS(也许是 Android)访问自定义硬件可能会遇到挑战,但同样,其他人对这些平台了解更多。

有跨平台的 .NET USB 库,包括https://github.com/MelbourneDeveloper/Device.Net(这看起来是最好的起点;在某些平台上,它依赖于 LibUsbDotNet),https: //github.com/LibUsbDotNet/LibUsbDotNethttps://github.com/mikeobrien/HidLibrary .

如果这不起作用,您仍然可以选择编写每个平台的本机硬件接口代码,然后将其连接到应用程序的其余部分(非硬件部分可以使用.NET MAUI)。

我确实注意到一件事:您提供的来源经常提到 PCI,但很少提到 USB。  它似乎期望连接到 PCI 卡,而不是 USB 设备。  不过,再次强调,我不是硬件专家。

作为第一步,我将从源代码重建 DLL,并确保 VB6 程序与刚刚构建的版本正常工作。  这将帮助您验证您是否拥有真正的最新源代码(如果 DLL 未在积极开发中)。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.