デバイスコントローラー(rs232)を作成しましたが、正常に使用されていますが、ユーザーはExcelからデータを表示し、デバイスを制御(またはプログラムを介して通信)したいと考えています。オプションとしてDDEを却下し、RTD(IRtdServer)がおそらく良いスタートであることがわかりました(ただし、リアルタイムデータクライアントから「サーバー」にデータを送り返す方法はありません)。
RTD部分の次のリソースを見つけました: http ://support.microsoft.com/?id=327215 および http://support.microsoft.com/?id=327215
これはマルチスレッドアプリであり、複数のクライアントを更新できるように、comポートに複数のリスナーを持つ機能をすでに追加していました。COMインターフェイスをEXEに追加します。
しかし、その後に必要なのは、Excelからアプリを介してデバイスへのアプリ/プロキシコマンドを制御する方法です。
それを行うための最良の方法は何でしょうか?
おそらく別のCOMインターフェイスで、VBAなどから呼び出していますか?私はExcelからのスクリプトの使用に慣れていないので、おそらく誰かがCOMオブジェクトのコードと付随するVB(A?)コードの両方を示すサンプルコードまたはリンクを提供できますか?
これはアンマネージC++アプリケーションであり、現在マネージドまたはC#に変換できないことに注意してください。C#を使用する代替手段も歓迎されますが、それは長期的な書き直しです。
ありがとう
編集既存のEXEにCOMサポートを追加する代わりの方法があります。双方向通信を追加する方が柔軟だと思います(クロスプラットフォーム-おそらくブーストまたはコーバ、あるいは私自身のメッセージプロトコルに基づくストレートIP)
COMサーバー(または2つ)は、その通信チャネルをラップできます-それが何であれ。これは私の質問にはまったく影響しません-Excelから外部EXEを制御するためのオプションを知りたいのですが。
編集.NETを顧客に展開する必要がないことも大きなプラスです。これらのデバイスの多くはかなり古いPC上にあり、おそらくNTまたはXPが搭載されており、セットアップ/インストールパッケージを700KBからばかげた.NETインストールサイズに増やすのは好きではありません...