oop - 将 VisualAge Smalltalk 4.5 应用程序移植到 VA Smalltalk 8.6 时出错

标签 oop smalltalk porting

我正在将旧的(大约 2000 年)IBM VAST 4.5 应用程序移植到 VA Smalltalk。

我成功地将应用程序从 VAST 存储库导入到我的新 VA Smalltalk 存储库,没有出现任何错误消息。但是当我尝试加载应用程序时,会发生此错误:

Error: 365 Cannot complete the load because CwItem can only be defined by one of ('CwControls V 4.5a' 'CwWindowsControls V 8.6.0 [269]').

我知道 CwControls 更改为 CwWindowsControls,但我的 Smalltalk 知识非常生疏:我不知道如何解决这个问题。

VA Smalltalk 小组中的有人提到了类似的情况,但他的回答对我来说有点神秘:

“CwControls 应用程序名称在新版本中更改为 CwWindowsControls。当我创建名为 CwControls 的空应用程序时,我可以加载使用此应用程序中的控件的应用程序。”

我知道我可以创建一个名为 CwControls 的空应用程序,但是我的应用程序将无法编译,因为原始 CwControls 通常提供的方法将不存在。

如何解决这个问题?

非常感谢!!

最佳答案

在我看来,CwWindowsControls 已经定义了 CwItem。当您从其他项目加载 CwItem 时,它是由 CwControls 定义的。我不熟悉 VA,但您也许可以通过首先删除由 CwWindowsControls 定义的 CwItem,然后加载其他项目,最后(可能)重构由 CwWindowsControls 定义的 CwItem 来解决该问题。

关于oop - 将 VisualAge Smalltalk 4.5 应用程序移植到 VA Smalltalk 8.6 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20203958/

相关文章:

c - 从 PLM51 移植到 C

c++ - Pop() 礼仪

smalltalk - 研究smalltalk和pharo的资源?

java - 泛型和 API 设计

smalltalk - 将 Pharo Smalltalk 中的 float 转换为字节数组?

parsing - 如何在 Pharo Smalltalk 中解析这个(见描述)文本文件

java - 这个 reinterpret_cast 是如何工作的? (将 C++ 移植到 Java)

java - 移植库时首先要做的事情

php - 使构造函数复杂化是不好的做法吗

Python 类,如何明智地使用它们,以及单一职责原则