VS 2010 を使用しています。C# クラスを作成して DLL にコンパイルし、Windows フォーム プロジェクトを追加して DLL をテストしました。ソリューション エクスプローラーの TestApp プロジェクトに DLL への参照を追加しました。どちらのプロジェクトもエラーなしでコンパイルされます。しかし、TestApp を実行すると、dll のメソッドを呼び出すと NullReferenceException が発生します。エラーは、オブジェクトのインスタンスがないことを示しています。これは、呼び出されているメソッドであると私は理解しています。
私が行ったことはすべて、インターネットで見つけた他の DLL の例と同じです。例: http://msdn.microsoft.com/en-us/library/3707x96z(v=vs.100).aspx
http://coderock.net/how-to-create-a-dll-file-in-visual-studio-2010/
しかし、私は明らかに基本的なことを見逃しています。
// DLL プロジェクト
namespace SLink
{
public class AmpAPI
{
public String[] ReadID( Int32 id )
{
String[] result = new string[] { "A", "B", "C", "D" };
return result;
}
}
}
// テスト アプリケーション
using SLink;
namespace TestApp
{
public partial class frmMain : Form
{
AmpAPI amp;
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load( object sender, EventArgs e )
{
amp = new AmpAPI();
}
private void btnUpdate_Click( object sender, EventArgs e )
{
String[] result = new String[] { "", "", "", "" };
result = amp.ReadID( 0 ); // <-- NullReferenceException
}
}
}