1

VS 2008 で開発された 2 つのプロジェクトがあります。

  1. C++ dll (コア ライブラリ)
  2. C++ Excel アドイン Xll (XLW 4_0_0f0 を使用)

dll と xll の間で Xlw::XlfOper 変数を転送します。それは長い間うまく機能しています。

現在、xlw.Net を使用して C# でアドイン プロジェクトを再実装しようとしています (以下の 3 つのプロジェクトのように)。

  1. ネイティブ C++ dll (コア ライブラリ)
  2. マネージ C++ ラッパー dll (C++/CLI)
  3. C# Excel アドイン Xll (XLW.Net を使用)

xlw.Net は XlfOper をサポートしていないため、代わりに C++ dll で Xlw::CellMatrix を使用できます。マネージ dll で xlw::CellMatrix と xlwDotNet::CellMatrix の間の変換を行っています。次に、XLW.Net を使用してテンプレート アドイン プロジェクトを作成し、ラッパー dll を参照します。しかし、それは CS:0433 をスローします: タイプ 'xlwDotNet::CellMatrix' は両方の dll (つまり、ラッパーと xlw.Net) に既に存在します。

コンパイラ コマンド参照エイリアスを使用してこのエラーを取り除くことができるかもしれませんが、私の質問は特にこのエラーについてだけでなく、アドインを C++ から C# に移植する方法についてです。具体的に言うと、私の状況で C# で XLL を作成するための他のより良い方法はありますか? 私は.Netが初めてです。ネイティブ dll が CellMatrix を使用していない場合、またはコア ライブラリが C# で記述されている場合は、非常に簡単です。このような状況を経験した人はいますか?私は多くの試行錯誤を行い、インターネットでこの問題を検索しましたが、成功しませんでした。

ネイティブ ライブラリは非常に大きく、パフォーマンスの問題から C# に変換したくありません。

ありがとうございました。

4

0 に答える 0