1、报bad runtime function 错误
原因:引用时声明没写对,或者dll重名了
解决:检查声明格式,使用ALIAS FOR 取个别名
2、报error calling external function 错误
原因:直接运行工程跑程序,优先调用system32下的dll,运行编译出来的exe优先调用根目录下的dll,所以system32下可能缺失部分dll
解决:可以在system32下拷贝一份dll,程序根目录下放一份。测试是否是因为缺少dll引起 error calling 或者bad runtime 的错误,可以把程序编译好后,运行exe,这样window系统会提示缺少什么dll的。
另外一个原因:也可能是xp系统是sp2 造成的,升级成sp3试试
还有一种原因:开发环境中没有相关配置,在C:\Program Files\PowerBuilder 9.0 目录中方式相关的配置dll
3.报 error calling external object错误
原因:比如调用ole的Microsoft.XMLHttp 对象报这个错时,可能是ole object中没有完全加载所有控件或者是有的控件之间有冲突
解决:参考pb插入ole控件点击insert control时pb应用程序自动关闭解决思路_pb 插入ole-CSDN博客
或者或者重新注册所有dll,首先要确保http对象里的参数要正确
4.报 bad runtime function 错误
就是在编译时没问题,直接代码运行也ok,就是编译成pbd跑时,会报这个。
这个问题比较奇怪,当pbl增大到一定大小,就会碰到里面随便修改增加一段代码,就会出现上述问题。
原因目前还不清楚,解决办法:在工程目录选中pbl,右键选择优化optimize选项,把整个pbl文件优化后,再编译。