我正在将一个旧的(大约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通常提供的方法将不存在,因此我的应用程序将无法编译。
我该如何解决这个问题?
非常感谢!
在我看来,CwWindowsControls已经定义了CwItem。当您从另一个项目加载CwItem时,它是由CwControls定义的。我不熟悉VA,但是您可以通过以下方法解决此问题:首先删除CwWindowsControls定义的CwItem,然后加载其他项目,最后(可能)重构CwItem由CwWindowsControls定义。
我找到了解决问题的方法。
我的应用程序需要另一个名为CwControls的应用程序。但是CwControls已将其名称更改为CwWindowsControls。
因此,受@MikeLeske的回答启发,我刚刚创建了一个名为CwControls的空应用。这样,VA Smalltalk让我继续加载。
然后出现另一个错误:
“错误:365无法完成加载,因为AbtCwPanel只能由以下之一定义('AbtRunWinCwControlsApp V 4.5''AbtWinRunViewsSubApp V 8.6.0 [269]')。”
但是答案很相似:我刚刚创建了一个名为AbtRunWinCwControlsApp的空应用程序。
现在,我已将13岁的应用程序加载到我的图像中。该工作了!!!
谢谢。
我也有类似的问题,但是有了SstHttpSupport,它变成了SstHttpCommunications等。我通过“管理”应用程序并消除了对SstHttpSupport的要求来解决此问题。然后,我成功地将应用程序移植到了VAST 8.6中。知道我不再拥有SstHttpSupport了,因此我将SstHttpCommunications添加为8.6中的新要求。希望对您有所帮助