2011-02-07 7 views
2

私は、古いハードウェアとインターフェースするスクリプトをmatlabに書き込もうとしています。シリアルI/OルーチンはBASICで書かれており、.ocxファイルに含まれています。以前は、これらはVB6スクリプトで呼び出されていました。MatlabのOCXライブラリでのコマンドの使用

私は、MATLABの中から.ocxファイルのスクリプトを呼び出してそこからすべての後処理をしたいと考えています。私は、MATLABのActiveXコントロールを研究しましたが、それらはGUIなどに焦点を当てているようです。

これらの関数をmatlabにインポートする方法はありますか?関数を何か他のものとしてコンパイルする必要がありますか?

お世話になりました!

答えて

2

これにはactxcontrol関数を使用できるはずです。参照:

http://www.mathworks.com/help/techdoc/ref/actxcontrol.html

ActiveXコントロール(別名* .OCX)は、通常、GUIの目的のために意図されていたが、彼らはする必要はありません。 actxcontrolにはいくつかのコンストラクタがあります。最初のものはコントロールのprogidのみを必要とします(他のオーバーロードは位置を指定します。これはGUIタイプのコントロール用です)。

次に、interfacesinvoke関数を使用して、OCXのメソッドを呼び出します。

+1

必須のコメント:ActiveX/OCXは深刻な時代遅れの技術です。これは、BASICコードにカプセル化されたロジックを取って、それをより現代的なものに移す良い機会かもしれません(それで、あなたは数年以上の作業をすることができます)。 – MusiGenesis

+0

ご協力いただきありがとうございます!あなたはこのすべてが古くなっているのは間違いありません。残念ながら、時間は現時点での要素なので、短期的な解決策が必要です。 BASICコードに含まれているもの(私には経験がないもの)を除き、シリアル通信に関するドキュメントはありません。だから私たちは既存のライブラリを使いたいのです。 – James

+0

@James:あなたの状況を理解しています。なぜなら、Matlabコードを.Netアセンブリとしてコンパイルし、それをシリアルポートのものを扱うC#アプリケーションに組み込むことです。これは、シリアルポートのものをCOMオブジェクトとしてカプセル化してMATLABアプリケーションに組み込むこととはまったく逆です。 – MusiGenesis

関連する問題