C++ DLL から VB.NET クラス ライブラリを使用する最良の方法は?
質問
VB.NET プロジェクトの 1 つを C++ プロジェクトで使用する必要があります。この 2 つの間のインターフェイスは、C++ コードがインスタンスを作成し、.NET アセンブリ オブジェクトの 1 つのメソッドを呼び出すためのものです。
どちらも DLL にコンパイルされます (その後、C++ DLL が NTVDM から VDD としてロードされますが、これはおそらく関係ありません)。
レジストリを操作せずに展開する必要があるため、可能であればこれに COM を使用することは避けたいと考えています。また、C++ と VB.NET の両方に Visual Studio 2008 Express エディションを使用しています。
これを行うための最良の方法は何ですか?
解決
本当にネイティブ C++ が必要ですか? それとも C++/CLI を使用できますか?
すべてを C++/CLI で実行できれば、純粋な .NET アプリケーションが完成します。
「ネイティブ」 C++ が必要な場合は、マネージドおよびアンマネージド C++ を含むアセンブリを Visual Studio から直接作成できます (ネイティブ C++ は C++/CLI を呼び出し、その後 VB.NET を呼び出します)。
また、すべてを 1 つのアセンブリにまとめたい場合は、次の手順に従ってください。 ネイティブ C++ を C# アプリケーションにリンクする. 。VB.NET でも動作するはずです。
Heege (1-59059-756-7) の「Expert C++/CLI」を強くお勧めします。
他のヒント
は、をCOMを使用したくないと私はあなたがのせいにしていない場合、私はちょうどWebサービスを作成し、そのを通して、あなたの機能を公開します。 C ++でWebサービスにアクセスし、VB.NETで公開しやすいために、その簡単ます。
(更新)
ここで語るブログへのリンクがのですIISせずにWebサービスを公開する方法について