[英]Creating and Using a C# DLL
我使用的是VS2010。我創建了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
}
}
}
看起來在窗體加載時未調用您的frmMain_Load
方法。
您是否只是復制並粘貼了代碼? 將方法注冊為Load
事件的事件處理程序還不夠。
Load
事件。 然后,您可以編輯方法的主體。 Load
,然后從下拉列表中選擇您的方法。 嘗試這個:
private void btnUpdate_Click( object sender, EventArgs e )
{
String[] result = amp.ReadID( 0 );
}
不確定是否喜歡您以前的實現來初始化數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.