VS 2008 で開発された 2 つのプロジェクトがあります。
- C++ dll (コア ライブラリ)
- C++ Excel アドイン Xll (XLW 4_0_0f0 を使用)
dll と xll の間で Xlw::XlfOper 変数を転送します。それは長い間うまく機能しています。
現在、xlw.Net を使用して C# でアドイン プロジェクトを再実装しようとしています (以下の 3 つのプロジェクトのように)。
- ネイティブ C++ dll (コア ライブラリ)
- マネージ C++ ラッパー dll (C++/CLI)
- 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# に変換したくありません。
ありがとうございました。