如何在PowerBuidler中捕获DLL中的引发事件

时间:2016-03-16 02:11:46

标签: c# events dll powerbuilder

有没有办法捕获在PowerBuilder中用c#制作的COM visble DLL中引发的事件?我使用OLEObject在PowerBuilder App中实例化DLL并且能够调用函数,但是如何捕获DLL中引发的事件?

2 个答案:

答案 0 :(得分:0)

需要将C#OLEobject添加到表单中(通过“添加OLE对象” - “插入对象”对话框窗口)。这将使通过COM公开的事件在Powerscript中可见(假设对象已编码事件)。

答案 1 :(得分:0)

Matt所说的可能会在OLEObjects中被删除,但在引用不存在的对象时,我还没有运气防止PB崩溃。不使用try,catch,finally阻止的 catch 的OLEObject的属性。

尝试......抓住......最后......阻止

如果你阅读了PB for Try,Catch的文档,最后你会发现你可以" Catch"许多不同的错误类型和 OLEError 就是其中之一。存在一般错误,而不是允许您处理不同方案的专用错误类型。这非常适合OLEErrors,或引用不存在的OLEObject的对象(任何)类型属性,这些属性通常会导致PB崩溃。使用正确的错误对象和catch,即使引用了不存在的OLE属性,也可以防止PB崩溃。

这是PB的更高版本中首选的错误处理方法,因为您可以添加捕获(和处理)任何来自系统错误,ole错误以及更多我不能记得的内容,但它们应该在PB中列出帮助 - 继续挖掘PB没有做好帮助条目很容易找到。

如果您无法在PB帮助中找到它们,请在对象浏览器中查找错误对象类型。一旦开始使用此功能,您的PB程序将更加稳固,您的最终用户将会感到高兴。