1

バイトの配列をActiveXに渡したい。私はdelphi7を使用しており、InProcess Server(DLL)を使用しています。

バイトの配列と配列のサイズへのポインターを使用して、それをInProcessサーバーに渡します。それはうまく機能しています。パフォーマンスが必要なため、これを行いました。誰かがこのアプローチで何か問題を見ますか?

非常によく似た投稿があります。ActiveXメソッドでバイナリデータを処理するのに適したデータ型はどれですか。しかし、誰もこの答えを出しませんでした。

4

1 に答える 1

1

サイズ情報と一緒にバイト配列をポインタとして渡すのは問題ありません。

ただし、一部のプログラミング言語は、考えられるすべてのタイプのごく一部しかサポートしていません。たとえば、Visual Basic for Application(VB.NETではない)は、Automation互換のデータ型(http://msdn.microsoft.com/en-us/library/cc237562(v=prot.20).aspxを参照)のみを処理できます。そして、それらのすべてではありません(たとえば、16ビットの符号なし整数はサポートされていません)。安全を期すために、私は常にSAFEARRAYを使用します。

また、自動化に対応していないインターフェイスを使用すると、コンポーネントOutProcを使用する場合に備えて、独自のマーシャリングコードを提供する必要があることに注意してください。コンポーネントをInProcのみで使用するつもりであると述べているので、心配する必要はありません。

よろしく、スチュアート

于 2012-12-03T22:16:45.023 に答える