2010-12-01 69 views
0

我iporting来自外部的dll的方法,并有下面的代码:C#dllimport的问题

[DllImport("test.dll", CharSet = CharSet.Unicode, SetLastError = true)] 
    public static extern TabPage CreateGUI(); 

,并称之为:

tabControl1.TabPages.Add(CreateGUI()); 

我得到的错误,指出CreateGui无法定位在DLL中。 CreateGui方法已经在dll中声明为public和static?任何人有任何想法?

谢谢。

+0

是test.dll一个.net DLL或一些Legacy DLL? – TalentTuner 2010-12-01 10:57:42

+0

公共?你试图“导入”一个.Net程序集? DllImport是否仅用于Interop/COM程序集? – willvv 2010-12-01 10:58:29

回答

2

如果该方法返回一个TabPage它是一个.NET方法,因此它是一个.NET程序集。那么你不应该用DllImport导入它,而是将dll作为参考添加到你的项目中。

编辑:
如果要动态地你需要Assembly.LoadFile加载它,然后用Assembly.GetTypes找到你的类型加载.NET程序集。