2009-05-08 29 views
4

私は、PBオブジェクト と.NET(C#)オブジェクトとの双方向通信を行う方法を探しています。彼のGUIの コントロールのBradの.NETバージョンを見ると、.NETオブジェクトにPB オブジェクトへの参照を与える方法がわかります。しかし、その例では、PowerObject(基本的に)としてキャストされています。 C#コードは、PBオブジェクトのTriggerEvent()のみを呼び出します。PowerBuilderの.NET interop

私はfoo1というC#でカスタムクラスを作成したいと考えています。 bar1()と呼ばれるfoo1上に メソッドを作成したいと思います。

私は、foo2という名前のPBでカスタムクラスを作成したいと考えています。 bar2()と呼ばれるfoo2のメソッド を作成します。

foo2の中にfoo1のインスタンスを作成したいと考えています。 はfoo2の中からfoo1.bar1()を呼び出せます。

は(私はここまで良いよ。)

私はfoo1の中からfoo2はを参照できるようにしたいです。 はfoo1の中からfoo2.bar2()を呼び出すことができます。

+0

あなたのPBのバージョンは何を起動/ Pを見てみたいことがあり? –

答えて

0

私は確かにこれを行うより丁寧な方法がありますが、COMを使用するのが最も簡単かもしれません。

一部の人々は、COMは正しい答えになることはありませんが、私は右の仕事のための適切なツールを使用すると言うことを言うでしょう。

0

PowerBuilder(バージョン6,7,8.0)は、異なるテクノロジで記述されたオブジェクトを接続する場合は、BINARY契約のみを正しく理解します。実際には、IDispatchインターフェイス(いわゆるOleAutomation)を持つCOMオブジェクトを意味します。 VB6やjscript(wscript)などのインタープリター言語で使用できるオブジェクトと同じ種類のオブジェクトです。

オブジェクト間の非同期通信を行うためにConnectionPointを処理する必要はありません。独自の通常のインターフェイスを使用します。

Watcom C++コンパイラを使用して「プロキシオブジェクト」を構築しないでください。数年前には非常に弱いコンパイラでした。私はコンパイルしようとしていたし、いくつかのソリューションを構築し、それはコンパイル中に多くの内部エラーを示した。 MS C++コンパイラは問題なくコンパイルを行いました。

オブジェクトはアパートメントと互換性があることを忘れないでください。 PBはSTA(Single Threaded Apartment)のみを使用します。それを確認してください - 多分何かが最近変更されました。

関連する問題