Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PowerBuilder中的.NET互操作_C#_.net_Interop_Powerbuilder - Fatal编程技术网

C# PowerBuilder中的.NET互操作

C# PowerBuilder中的.NET互操作,c#,.net,interop,powerbuilder,C#,.net,Interop,Powerbuilder,我正在寻找一种在PB对象之间进行双向通信的方法 和一个.NET(C#)对象。看着Brad的.NET版本的GUI 控件,我将了解如何为.NET对象提供对PB的引用 对象但在那个示例中,它被转换为PowerObject(基本上)。 该C#代码只调用PB对象上的TriggerEvent() 我想在C#中创建一个名为foo1的自定义类。我想创建一个 foo1上名为bar1()的方法 我想在PB中创建一个名为foo2的自定义类。我想创建一个 foo2上名为bar2()的方法 我希望能够在foo2中创建fo

我正在寻找一种在PB对象之间进行双向通信的方法 和一个.NET(C#)对象。看着Brad的.NET版本的GUI 控件,我将了解如何为.NET对象提供对PB的引用 对象但在那个示例中,它被转换为PowerObject(基本上)。 该C#代码只调用PB对象上的TriggerEvent()

我想在C#中创建一个名为foo1的自定义类。我想创建一个 foo1上名为bar1()的方法

我想在PB中创建一个名为foo2的自定义类。我想创建一个 foo2上名为bar2()的方法

我希望能够在foo2中创建foo1的实例。我想 能够从foo2中调用foo1.bar1()

(在这里之前我都很好。)

我希望能够从foo1中引用foo2。我希望能够
要从foo1中调用foo2.bar2()。

我确信有一种更省力的方法,但使用COM可能是最简单的方法

有些人会说COM永远都不是正确的答案,但我要说的是,使用正确的工具来完成正确的工作

PowerBuilder(版本6、7和8.0)如果要连接使用不同技术编写的对象,则只能正确理解二进制契约。实际上,它意味着具有IDispatch接口的COM对象(称为OleAutomation)。它和VB6或jscript(使用wscript)等解释语言可以使用的对象类型相同

在对象之间进行异步通信不需要处理连接点。使用您自己的常规接口

<>不要使用WATCOM C++编译器来构建任何“代理对象”——几年前它是非常弱的编译器。我试图编译并构建一些解决方案,但在编译过程中它显示了许多内部错误。C++编译器做了编译,没有任何问题。p>
请记住,您的对象应该是公寓兼容的。PB仅使用STA(单线程单元)。请检查它-可能最近有什么变化。

我用这里的想法创建了我的C#控件,它通过PB和Qt调用工作

您可能还想看看p/Invoke