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

时间:2013-11-25 21:43:31

标签: oop port smalltalk

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

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

  

错误:365无法完成加载,因为CwItem只能是   由('CwControls V 4.5a''CwWindowsControls V 8.6.0之一定义   [269]')。

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

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

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

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

我该如何解决这个问题?

非常感谢!!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我找到了解决问题的方法。

我的应用程序需要另一个名为CwControls的应用程序。但是CwControls已将其名称更改为CwWindowsControls。

所以,受到@MikeLeske的回答的启发,我刚创建了一个名为CwControls的空应用程序。那样VA Smalltalk让我继续加载。

然后出现了另一个错误:

“错误:365无法完成加载,因为AbtCwPanel只能由('AbtRunWinCwControlsApp V 4.5''AbtWinRunViewsSubApp V 8.6.0 [269]')之一定义。”

但答案是类似的:我刚创建了一个名为AbtRunWinCwControlsApp的空应用程序。

现在我将13岁的应用程序加载到我的图像中。工作的时间!!!

感谢。

答案 2 :(得分:1)

我遇到了类似的问题,但是SstHttpSupport成了SstHttpCommunications等等。 我通过“管理”应用程序并删除了对SstHttpSupport的要求来修复此问题。 然后,我成功将应用程序移植到VAST 8.6中。 知道我不再拥有SstHttpSupport,我将SstHttpCommunications添加为8.6中的新要求。 希望这有帮助