【发布时间】:2020-10-31 06:28:23
【问题描述】:
我在其中一项任务中寻求帮助,将 IBM Rhapsody 模型集成到 VS 2019 C++ 项目中。这就是我们正在尝试做的事情。 请注意:我不是 IBM Rhapsody Systems Engg 工具方面的专家。我的专长是 WPF 和 .net 应用程序 我们使用 Rhapsody 8.4 为自动汽车仪表板生成了 Rhapsody 模型。它具有一般功能,例如打开/关闭仪表板上的各种灯(停车,点火状态,档位等),效果很好。现在,我们在 rhapsody 中将代码生成为 .h 和 .cpp 文件。我们在 VS 2019 中创建了一个空的 C++ 项目,添加了 OXF 框架文件、适配器文件以及上述生成的文件。 文件夹结构如下: enter image description here
当我们编译这个项目时,我们遇到了各种与无法找到 OXF 框架相关的错误,我们在头文件中添加正确的#include 路径后能够修复这些错误。 我们还编写了一个包装文件,使我们能够将生成的 dll 导入另一个 WPF 项目并在那里使用它。但是,在删除路径错误后,项目无法成功编译,因为我们仍在查看一个错误说 *
'OMReactive':'class'类型重定义。
在这里发布之前,我花了 3 周时间在 google、IBM rhapsody 网站和 stackoverflow.com 上进行研究,但提供的解决方案都没有为我工作。我知道上述错误意味着某个文件包含两次。我曾经尝试过使用#include 警卫和#pragma,但这并没有解决我的问题。 请问有人知道这里发生了什么吗?我试图解释并提供尽可能多的信息。如果需要更多信息,请告诉我。如果我错过了任何信息或不清楚任何事情,我深表歉意。我现在处于死胡同,需要帮助。有什么想法,有什么建议吗?接下来我应该尝试什么?我想知道我将 rhapsody 模型添加到 VS 2019 中的步骤是否不正确,或者 Rhapsody 框架没有正确包含或在某处丢失了某些文件。请让我知道正确的步骤。 IBM Rhapody 网站没有关于我想要做什么的确切信息。 我要做的就是从模型类中生成一个 DLL 以在 WPF 项目中使用。 感谢您阅读我的问题,很抱歉这么久。 谢谢.. 阿斯玛
【问题讨论】:
-
首先查看是否可以找到重复项。使用“Alt F12”并选择查找所有组件。如果组件位于不同的命名空间中,您可以通过指定命名空间来删除这些类型错误,以便获得正确的类的版本。一个类的多个版本通常是可以的,只要使用该类的方法包括该类的完整路径(包括命名空间),这样一个方法就不会调用该类的错误版本。错误可能是由代码引起的更改库时不会重新编译,因此请确保执行干净构建以强制重新编译旧 obj。
-
我试过这些步骤似乎不起作用..还有其他建议吗???
-
阅读检查(第 231 页)。看起来属性可能与类同名:render-prd-trops.events.ibm.com/sites/default/files/support/swg/…
标签: c# c++ wpf language-interoperability rhapsody