我们有一个使用PFC构建的应用程序。我面临一个奇怪的问题。当我定义工作区并仅打开PFC库时,我可以迁移并执行完整的构建。但是,当我在我的应用程序库中包含它时,它将无法构建,并且在给出错误时指出C0001:非法数据类型s_printsetupattrib。
无论在何处使用,都会发生此错误。
谷歌搜索没有给出任何答案。我试图在pfcapsrv.pbl中重新生成s_printsetupattrib,并且它可以重新生成。我尝试的下一步是重新生成pfc_n_cst_platform(pfcapsrv.pbl)和其他此类对象,但这些对象不会重新生成,并抛出此错误。
pbl需要在应用程序迁移库列表中列出的顺序是否有任何内容?
我将在此事上给予任何帮助。
此致 Ndesai。
答案 0 :(得分:0)
如果您可以无错误地迁移PFC,那么它不是6.5 PFC。我已经将6.5迁移到9.0,但我已经没有笔记了。打印机设置是Sybase在版本8或9中添加的内容之一。较旧的PFC使用自定义DLL和结构来显示系统打印机对话框,但PB的较新版本具有内置调用,因此PFC调用它。较新版本的PFC使用对象而不是结构来传递值。这是我知道你没有使用旧PFC的另一种方式。然而,您的6.5应用程序是为旧PFC编写的。
我建议您从Codeplex获取latest build of the PFC for 10.5。我认为帮助就在那个包中,如果没有ping我,我会找到你的链接。查看在PFC中调用打印设置的新方法,并相应地更改代码。有一些非PFC陷阱值得关注。仔细查看Terry's archive of PowerBuilder changes,看看有什么可能会咬你。在我的脑海中,我认为编辑掩码,树视图和DataWindow事件都有行为更改(它们发生的顺序)。
答案 1 :(得分:0)
我注意到这个问题已经过时了,但是因为你没有真正得到答案而添加我的2件。
如果您正在使用项目对象,并从那里执行构建“部署”并指定“完整构建”,那么PB会自动按正确的顺序编译内容,除非您有重复的对象名称,否则无需按顺序排列这不是最好的主意。我想我建议检查以确保你的PBL中没有重复的对象。
如果你仍然遇到问题,我遇到的问题是PB编译器会像自我引用情况或其他复杂情况一样混淆而且它是PITA,大多数情况下,这种情况发生的时候设计很差,所以试着理解什么正在进行并修改代码,而不是你想听到的但是事情发生了。
或者......作为另一种解决方法,我们遇到了无法正确编译的代码,当它失败时,您会发现无法编译的对象(在您的情况下是引用该结构的对象)并打开它文件 - >开源,找到引用结构的代码,如果可行的话,将其注释掉并尝试重新编译。所有内容编译后打开手动注释的对象并编译。
您所描述的并非完全不常见,有时您必须发挥创意,特别是在使用过时的PFC时。
此致 富