最初に読んでいただきありがとうございます。
Windows ワークフローのデザイナー、ツールボックス、およびプロパティを再ホストする WPF アプリケーションを設計しました。私のアイデアは非常に単純で、実行時にワークフローを視覚化し、実行時にそれらを設計するだけです。
問題:
ここで、アプリケーション全体の同じ名前空間でクラスのメソッドを呼び出そうとします。このクラスは MyTwsClass と呼ばれます。以下をご覧ください。
非常にシンプルです。TwsClass は、Interactive Brokers Trading Software の Reference ActiveX からのものです。この ActiveX は、アカウントと通信するためのメソッドとイベントを提供するだけです。わかりました。ご覧のとおり、MyConnect() メソッドを実装します。このメソッドは、TwsClass の connect メソッドのパラメーターとなるようにいくつかの string 変数と int 変数をセットアップするだけです。MyTwsClass または MyConnect メソッドを静的に設定できないことに気付きました。
ここで、ランタイム デザイナーで、MyConnect メソッドを呼び出そうとします。まずは下の写真。
MyTwsClass は静的メソッドを持つ静的クラスにはなり得ないので (ActiveX クラスの TwsClass から継承しているためだと思いますが、初心者にはわかりません)、インスタンス メソッドを呼び出したいと思います。ワークフローを実行する前に問題はありません。これを実行すると、取引ソフトウェアの API に接続できるはずです。
次に、ワークフローを実行します。
実行中のボタンをクリックした直後に実行され、例外コード C0000005 で APP がクラッシュしたことを知らせるポップアップ ウィンドウが表示されました。閉じるオプションをクリックすると、WPF アプリケーションが閉じられます。しかし、それを閉じる前に、上の図でわかるように、クラッシュした WPF が実際に API に接続されていることがわかり、1 が接続されていることがわかりました......
この問題をインターネットで確認するために最善を尽くしました。TwsSocket.dll が原因であることがクラッシュ ウィンドウに示されているため、WPF と参照 ActiveX の間の Interop または COM プロセス内の問題が原因であると感じています。
しかし、私は本当にそれ以上理解できませんでした.....