C#から使う、C#で書かれたライブラリ(*.dll)の作成方法です。
C#から使う、C言語ライブラリの作成方法はこちらを参照ください。
まず、ライブラリを呼び出す側のプロジェクトを作成します。
ここでは、Windowsフォームアプリケーションを作成するのに、
テンプレート→Visual C#→Windows→Windowsフォームアプリケーション
と選択し、名前を適当に付けてOKボタンをクリックします。
これで、呼び出し側のプロジェクトが作成されました。
次に、C#ライブラリ用のプロジェクトを作成します。
今、作成したプロジェクトの1つ上の階層に作成されている ソリューション の文字を右クリックし、
追加→新しいプロジェクト
を選択します。
今度はライブラリを作成するので、
Visual C#→Windows→クラスライブラリ
と選択し、名前を適当に付けてOKボタンをクリックします。
すると、最小限のコードが生成されます。
通常は、Class1とかいうクラス名ではなく、もっとわかりやすい名前に変えますが、とりあえず、このまま次に進みます。
次に、2つの値を足すだけの簡単なメソッドを追加してみます。
この状態で、ビルドすると、ライブラリのプロジェクトフォルダのbinフォルダのDebugもしくはReleaseフォルダの中にライブラリファイル(CSharpDll.dll)が作成されます。
しかし、それだけだと、ライブラリを呼び出す元のプロジェクト(ここではWindowsFormsApplication1)からは使う事ができないため、参照の設定を行います。
参照は呼び出す元の方のプロジェクトにある、参照の文字を右クリックし、参照の追加を選択します。
ここで、ライブラリファイルを選択する方法もあるのですが、プログラム作成中はライブラリのプロジェクトを参照した方がデバッグ等が便利なので、プロジェクトの参照を行います。
プロジェクト→ソリューション
と選択すると、ライブラリのプロジェクト名が表示されているので、プロジェクト名の左側にあるチェックボックスにチェックを入れ、OKボタンをクリックします。
これで、参照元に参照先のライブラリ名(ここではCSharpDll)が追加され、ライブラリが使用できる状態になります。
試しにフォーム上にボタンを配置します。
ボタンをダブルクリックし、作成されたクリックイベント内に、今、作成したライブラリのメソッドを追加してみます。
これで、ボタンをクリックした時に、以下のように表示されれば、C#ライブラリの作成は成功です。
ここでは、ライブラリのプロジェクトの参照として行いましたが、こうすることで、ライブラリのメソッド内へのステップイン実行もできるようになるので、かなり便利です。
一つポイントとしては、デフォルトのまま、ライブラリを作成すれば特に問題は無いのですが、ライブラリのプロジェクトのプラットフォームはAnyCPUにしておくのをお勧めします。
こうしておく事で、呼び出し元のプロジェクトがx86だろうが、x64であっても、同一のライブラリファイル(ここではCSharpDll.dll)を使用することができるようになります。
これを間違うと、x86用のdllファイル、x64用のdllファイルのそれぞれを作成する必要が出てくるので、少々面等になります。
ピンバック: DLL を作成する方法 [C#] – Site-Builder.wiki
何の問題も無いと思います。
ボタンの配置が分からないということでしたら、ツールボックスからButtonをフォームにドラッグしてください。
補足ありがとうございます。
>試しにフォーム上にボタンを配置します。
以降、手順が省略されすぎてて意味不明です。