1

我们有一个使用 PFC 构建的应用程序。我面临一个奇怪的问题。当我定义一个工作区并仅打开 PFC 库时,我可以迁移并执行完整的构建。但是,当我将它包含在我的应用程序库中时,它不会构建,并给我一个错误,指出 C0001:非法数据类型 s_printsetupattrib。

无论在何处使用,都会发生此错误。

谷歌搜索没有给出任何答案。我试图在 pfcapsrv.pbl 中重新生成 s_printsetupattrib,它重新生成得很好。我尝试的下一步是重新生成 pfc_n_cst_platform (pfcapsrv.pbl) 和其他此类对象,但这些对象不会重新生成,并抛出此错误。

应用迁移库列表中pbl需要列出的顺序有什么吗?

我将不胜感激在这件事上的任何帮助。

问候,恩德赛。

4

2 回答 2

0

如果您可以顺利迁移 PFC,则它不是 6.5 PFC。我已将 6.5 迁移到 9.0,但我没有笔记了。打印机设置是 Sybase 在版本 8 或 9 中添加的内容之一。较旧的 PFC 使用自定义 DLL 和结构来显示系统打印机对话框,但较新的 PB 具有内置调用,因此 PFC 调用它。较新版本的 PFC 使用对象而不是结构来传递值。这是我知道您没有使用旧 PFC 的另一种方式。但是,您的 6.5 应用程序是为旧 PFC 编写的。

我建议您从 Codeplex获取 10.5 的 PFC 的最新版本。我认为帮助就在那个包里,如果不是 ping 我,我会给你一个链接。查看在 PFC 中调用打印设置的新方法并相应地更改您的代码。有一些非 PFC 问题需要注意。查看Terry 的 PowerBuilder 更改档案,看看有什么可能会咬到你。在我的脑海中,我认为编辑掩码、树视图和 DataWindow 事件(它们发生的顺序)的行为发生了变化。

于 2010-06-27T00:59:36.750 回答
0

我注意到这个问题已经过时了,但是添加我的 2cents,因为您并没有真正得到答案。

如果您正在使用项目对象,并从那里执行构建“部署”并指定“完整构建”,那么 PB 会自动以正确的顺序编译事物,除非您有重复的对象名称,否则无需将事物按顺序排列。最好的主意。我想我建议您检查以确保您的 PBL 中也没有重复的对象。

如果您仍然遇到问题,我遇到了 PB 编译器混淆的问题,例如自引用情况或其他复杂情况,并且它是一个 PITA,大多数情况下发生这种情况时,无论如何它的设计都很糟糕,所以试着了解发生了什么并修改代码,不是你想听到的,而是发生的事情。

或者...作为另一种解决方法,我们遇到了无法正确编译的问题代码,当它失败时,您会找到无法编译的对象(在您的情况下是引用结构的对象)并使用文件打开它- > 开源,找到引用该结构的代码,如果可行,将其注释掉并尝试重新编译。一切编译完成后,打开手动注释的对象并编译。

您所描述的情况并不少见,有时您必须发挥创造力,尤其是在使用过时的 PFC 时。

真诚的,丰富的

于 2010-11-29T01:34:51.813 回答