首页 > 解决方案 > 如何在 Qt 中使用来自 64 位应用程序的 32 位 COM 对象?

问题描述

存在一个 .NET Windows 应用程序(COM 对象),它与硬件连接以获取传感器数据(每秒 1000 个样本)。由于它是一个旧应用程序,我们希望使用 Qt 显示更漂亮的图表。我已经使用以下步骤成功地实现了它:

在我的 32 位 Qt 应用程序中,我使用Dumpcpp通过库 ID 生成 C++ 命名空间库。Dumpcpp 为我生成了一个使用 QAxWidget 的库类。我使用这个 QAxWidget 从 .NET 应用程序中获取数据。我得到数据并在我的 32 位 Qt 应用程序中绘制数据到目前为止一切都很好。

我已将我的 Qt 应用程序从 32 位更新到 64 位。由于 .NET 应用程序是 32 位但我的 Qt 应用程序是 64 位 QAxWidget 无法注册,因为它不兼容。由于 .NET 应用程序很旧,他们不必为 64 位版本付出努力。

为了解决这个问题,我尝试了以下文章,现在 QAxWidget 注册成功,但我们有 2 个问题

1) 很多传感器数据丢失 2) 一些传感器数据是垃圾。

是否可以在我的 64 位 Qt 应用程序中使用 32 位 COM 对象?

标签: c++.netqtcom32bit-64bit

解决方案


推荐阅读