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

问题描述 投票:2回答:3

我正在将一个旧的(大约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通常提供的方法将不存在,因此我的应用程序将无法编译。

我该如何解决这个问题?

非常感谢!

oop smalltalk porting
3个回答
2
投票

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


1
投票

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

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

因此,受@MikeLeske的回答启发,我刚刚创建了一个名为CwControls的空应用。这样,VA Smalltalk让我继续加载。

然后出现另一个错误:

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

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

现在,我已将13岁的应用程序加载到我的图像中。该工作了!!!

谢谢。


1
投票

我也有类似的问题,但是有了SstHttpSupport,它变成了SstHttpCommunications等。我通过“管理”应用程序并消除了对SstHttpSupport的要求来解决此问题。然后,我成功地将应用程序移植到了VAST 8.6中。知道我不再拥有SstHttpSupport了,因此我将SstHttpCommunications添加为8.6中的新要求。希望对您有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.