2012-01-04 21 views
-1

参照することができ、アンマネージdllからメソッドを呼び出すために直接使用できるクラスを作成するにはどうすればよいですか? (管理されていないdllは、存在しない/コンパイル時に知られているdllだと仮定して)アンマネージdllクラスのインスタンスを作成

たとえば、クラスhelloWorldを含むDLLがあり、クラスのインスタンスを作成してhelloWorldを呼び出したいとします。 tell()。

+0

ダイナミックは管理されていないとは限りません。 –

+0

@ JamesD'Angeloの違いを説明できますか? – John

+0

C#は管理言語であり、メモリ管理のためにガベージコレクタを使用します。 C++は管理されていません。自分でメモリを管理する必要があります。 C#アセンブリを動的にロードし、リフレクションを使用してクラスをロードしたり、メソッドやそのすべてを呼び出すことができます。これは、動的で管理されたアセンブリです。 –

答えて

0

あなたは、アンマネージコードから利用できるCOMインターフェイス、とあなたのアセンブリを使用することができます。

ダウンロードできる例がいくつかあります。 COM Interop Part IIコードを確認してください。 http://code.msdn.microsoft.com/windowsdesktop/Visual-Studio-2010-Samples-31b491f3

あなたは勇敢な感じている場合は、ここでは別の説明です:http://msdn.microsoft.com/en-us/library/aa645738(v=vs.71).aspx

希望に役立ちます。

+0

OPは、アンマネージドアセンブリとダイナミックアセンブリを混同していました。私はこれが彼らが探していたものだとは思わない。 –

0

アセンブリを動的にロードしようとしていますが、アンマネージドアセンブリでは必要ではありません。 reflectionに関する情報を探しているようです。 Activatorを使用して、必要なオブジェクトを作成することができます。これを行う方法はたくさんありますが、私はそれを読んでいます。ここで始めるためにいくつかのリソースです:

Code Project - Reflection in C# Tutorial

CSharp.Net - Reflection Introduction

CodeGuru.com - An Introduction to Reflection

関連する問題