0

この問題をよりよく理解しているので、編集しました。以前、VB.NET と VBA を混同して申し訳ありませんでした

私は、大規模な VBA コードベース (Excel でホストされている) を取得し、それをコンパイル済みコード (vbnc) として組み込み Linux に移行する可能性を探っています。現在 Windows で設計されている私たちのアプリは、Microsoft COM を介して VBA を拡張する機能を利用しています。この方法でアクセスできる C#.NET クラスとアンマネージ C++ クラスがあります。

mono vbnc が COM 経由の外部ライブラリへのアクセスをサポートしていないことを理解しています。外部コードにアクセスするには、他にどのような方法がありますか?

Rolf の最初の回答から、次の 2 つがあるようです。1) P/Invoke を使用して、外部の Linux ライブラリにアクセスします。これで実験します。2) コンポーネントをマネージド コードとして書き直します。

私のC#/ C ++ミックスを考えると、おそらく両方を使用するのが最善の解決策のようです。しかし、上記の 2 の仕組みについてはよくわかりません。例を挙げたり、詳しく説明したりできますか? P/Invoke の使用例はたくさんあります。

よろしくお願いします。

4

1 に答える 1

2

Linux では COM/OCX コンポーネントを実行できないため、VB.NET はこれをサポートできません。

Linux で実行する必要があり、現在 COM/OCX を使用している場合は、次の 2 つのオプションがあります。

  • 既存の COM/OCX ライブラリと同じ機能を持つネイティブ Linux ライブラリを見つけて、VB.NET からそれらのライブラリを使用します (ネイティブ ライブラリにバインドするには、P/Invokes を使用する必要があります)。

  • COM/OCX コンポーネントをマネージ コードとして書き直します。

于 2013-05-02T09:58:37.840 に答える