-5

現在、DLL を持っています (C++ を使用して作成)。ここで、この DLL を C# アプリケーションにロードして、いくつかのメソッドにアクセスしたいと考えています。

ここに示す例を使用してみましたが、うまくいきませんでした: 実行時に .NET アセンブリを読み込んで、名前しか知らない型をインスタンス化できますか?

何が問題なのですか?DLL をロードしてメソッドにアクセスする方法はありますか?

前もって感謝します、ペルマル

4

2 に答える 2

6

リンク先の質問とあなたの問題の違いは、他の質問が.dll形式の.NETアセンブリについて話していたことですが、問題はネイティブの.dllファイルに関するものです。

C++ 側に多数のクラスがある場合は、C++/CLI を使用してネイティブ メソッドとクラスをラップすることをお勧めします。API がメソッドのみを公開する場合は、DllImportAttributeandexternキーワードを使用してバインディングを作成する必要がなくなります。

この MSDN の記事は、C++ dll のバインディングを記述するための出発点として最適です: http://msdn.microsoft.com/en-us/library/2x8kf7zx(v=vs.80).aspx

于 2012-07-06T06:48:16.040 に答える
2
  1. まず、ソリューション エクスプローラーで右クリックし、[参照タブの追加] を選択します。
  2. 追加する dll を参照します。
  3. 次の形式を使用して、DLL をコード ファイルに追加します。

    C# での使用 または

    VB にインポート

上記の解決策が機能しない場合は、次のリンクを参照してください。

.netにC++ dllを追加します

于 2012-07-06T06:48:57.367 に答える