2010-12-12 32 views
1

私は変数がある、例えばvardataを持つC++コンソールアプリケーションを持っています。私は自分のvb.netアプリケーションがvardataのコンテンツにアクセスしたい。私はvardataをクリップボードに保存してvb.netにクリップボードのテキストを保存することでこれを行うことができると思っていました。問題は、vardataの内容が毎秒150回変化していることで、vb.netアプリケーションがクリップボードのテキストを取得しようとしているときに、多くの変更がありません。メモリ空間(C++側)にデータを保存し、私のvb.netアプリケーション(vb.net側)からアクセスするために使用できる準備関数がありますか?あなたがライブラリにVBアプリケーションを変更してC++プロセスにそれをロードする必要があり、事前C++とvb.netのアプリケーション間のプロセス間通信

答えて

1

感謝。データを渡すにはさまざまな方法があります。最も簡単なのは、C++/CLI(C++で)を使用するか、VBでCOMオブジェクトを作成することです。

3

非常に不幸な数字です。共有メモリはそれを解決するつもりはない、あなたのVB.NETプログラムは35ミリ秒以上のCPUへのアクセスを簡単に失う。更新がありません。そしてあなたは本当には、維持しようとするサイクルを燃やしたくない、ポーリングは醜いです。

もう1つのオプションは、ソケットまたは名前付きパイプを使用することです。データを失うことはなく、サイクルを焼き付けません。あなたのVB.NETプログラムが応答しない場合、あなたのC++プログラムがうまくいかないことがあります。

人間の目は、1秒間に約30回以上の速さで行われる更新を認識できないことに注意してください。これがGUI要件であれば、1秒あたり150アップデートが無駄になり、実際にGUIをフリーズさせる可能性があります。

関連する問題