5

C# 経由でアクセスする必要があるカスタム dll (登録されていません) があります。DLL を登録せずにこれを行うにはどうすればよいですか?

編集: C++ dll です。

4

2 に答える 2

5

登録不要の COM 相互運用を参照してください。

登録不要の COM 相互運用機能は、Windows レジストリを使用してアセンブリ情報を保存することなく、コンポーネントをアクティブ化します。展開時にコンピューターにコンポーネントを登録する代わりに、バインドとアクティブ化に関する情報を含む Win32 スタイルのマニフェスト ファイルを設計時に作成します。これらのマニフェスト ファイルは、レジストリ キーではなく、オブジェクトのアクティブ化を指示します。

展開時にアセンブリを登録する代わりに、登録不要のアクティブ化を使用すると、次の 2 つの利点があります。

  • コンピューターに複数のバージョンがインストールされている場合に、どの DLL バージョンをアクティブにするかを制御できます。
  • エンド ユーザーは、XCOPY または FTP を使用して、アプリケーションをコンピューター上の適切なディレクトリにコピーできます。その後、そのディレクトリからアプリケーションを実行できます。
于 2010-05-19T22:00:28.390 に答える
1

このdllからP/Invoke経由でエクスポートされた関数を使用したいと思いますか?その場合は、dllをexeファイルと同じフォルダにコピーするだけで済みます。次に、使用するC ++ dllの関数のC#宣言を記述します。DllImportAttributeを参照してください。

于 2010-05-20T05:44:04.883 に答える